InterlockedExchange 函式 (winnt.h)
將 32 位變數設定為指定的值做為不可部分完成的作業。
若要在指標變數上操作,請使用 InterlockedExchangePointer 函式。
若要在16位變數上運作,請使用 InterlockedExchange16 函式。
若要在64位變數上運作,請使用 InterlockedExchange64 函式。
語法
LONG InterlockedExchange(
[in, out] LONG volatile *Target,
[in] LONG Value
);
參數
[in, out] Target
要交換之值的指標。 函式會將這個變數設定為 Value,並傳回其先前的值。
[in] Value
要與目標所指向之值交換的值
傳回值
函式會傳回 Target 參數的初始值。
言論
聯結函式提供簡單的機制,可同步處理多個線程所共用之變數的存取。 此函式與呼叫其他聯結函式有關不可部分完成。
此函式會盡可能使用編譯程式內部函數來實作。 如需詳細資訊,請參閱 WinBase.h 頭檔及 _InterlockedExchange。
此函式會產生完整的記憶體屏障(或柵欄),以確保記憶體作業會依序完成。
Itanium 型系統:針對效能關鍵性應用程式,請改用 InterlockedExchangeAcquire。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows XP [傳統型應用程式 |UWP 應用程式] |
支援的最低伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
目標平臺 | 窗戶 |
標頭 | winnt.h (包括 Windows.h) |
連結庫 | Kernel32.lib |
DLL | Kernel32.dll |
另請參閱
“>InterlockedExchangeAddAcquire64
InterlockedExchangeAddNoFence64
<href=“/previous-versions/windows/desktop/legacy/ms683605(v=vs.85)”。InterlockedExchangeAddRelease
InterlockedExchangeAddRelease64
InterlockedExchangePointerAcquire