共用方式為


InterlockedExchangeAdd 函式 (winnt.h)

執行兩個32位值的不可部分完成新增。

若要在 64 位值上運作,請使用 InterlockedExchangeAdd64 函式。

語法

LONG InterlockedExchangeAdd(
  [in, out] LONG volatile *Addend,
  [in]      LONG          Value
);

參數

[in, out] Addend

變數的指標。 此變數的值將會取代為作業的結果。

[in] Value

要加入至 Addend 參數所指向之變數的值。

傳回值

函式會傳回 Addend 參數的初始值。

言論

函式會執行 ValueAddend所指向之值的不可部分完成新增。 結果會儲存在 Addend所指定的位址中。 函式會傳回 Addend所指向之變數的初始值。

此函式的變數必須在32位界限上對齊;否則,此函式會在多處理器 x86 系統和任何非 x86 系統上的行為無法預測。 請參閱 _aligned_malloc

聯結函式提供簡單的機制,可同步處理多個線程所共用之變數的存取。 此函式與呼叫其他聯結函式有關不可部分完成。

此函式會盡可能使用編譯程式內部函數來實作。 如需詳細資訊,請參閱 WinBase.h 頭檔與 _InterlockedExchangeAdd

此函式會產生完整的記憶體屏障(或柵欄),以確保記憶體作業會依序完成。

Itanium 型系統:針對效能關鍵性應用程式,請改用 InterlockedExchangeAddAcquire

注意 Windows RT 型系統上支援此函式。
 

要求

要求 價值
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
支援的最低伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平臺 窗戶
標頭 winnt.h (包括 Windows.h)
連結庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

Interlocked Variable Access

InterlockedCompareExchange

InterlockedExchange

InterlockedExchangeAdd64

InterlockedExchangeAddAcquire

“>InterlockedExchangeAddAcquire64

InterlockedExchangeAddNoFence

InterlockedExchangeAddNoFence64

<href=“/previous-versions/windows/desktop/legacy/ms683605(v=vs.85)”。InterlockedExchangeAddRelease

InterlockedExchangeAddRelease64

InterlockedExchangeSubtract

同步處理函式