共用方式為


同步處理的新功能

Windows 包含下列用於同步處理的新程式設計項目。

Windows 8

新函式

DeleteSynchronizationBarrier

刪除同步處理屏障。

EnterSynchronizationBarrier

導致呼叫執行緒在同步處理屏障等候,直到執行緒數目上限進入屏障為止。

GetOverlappedResultEx

擷取指定時間間隔內指定檔案、具名管道或通訊裝置上重迭作業的結果。 呼叫執行緒可以執行可警示的等候。

InitializeSynchronizationBarrier

指定新同步處理屏障的執行緒數目上限和微調計數。

WaitOnAddress

等候位於指定位址的值變更。

WakeByAddressAll

喚醒等候位址值變更的所有線程。

WakeByAddressSingle

喚醒一個正在等候位址值變更的執行緒。

新的 Interlocked 函式

InterlockedAddNoFence

在指定的 LONG 值上執行不可部分完成的加法運算。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedAddNoFence64

在指定的 LONGLONG 值上執行不可部分完成的加法運算。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedAndNoFence

在指定的 LONG 值上執行不可部分完成的 AND 作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedAnd8NoFence

在指定的 char 值上執行不可部分完成的 AND 作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedAnd16NoFence

在指定的 SHORT 值上執行不可部分完成的 AND 作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedAnd64NoFence

在指定的 LONGLONG 值上執行不可部分完成的 AND 作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedBitTestAndComplement64

測試指定 LONG64 值的指定位,並加以補充。 此作業是不可部分完成的。

InterlockedBitTestAndResetAcquire

測試指定 LONG 值的指定位,並將其設定為 0。 作業是不可部分完成的,而且會使用取得記憶體排序語意來執行。

InterlockedBitTestAndResetRelease

測試指定 LONG 值的指定位,並將其設定為 0。 作業是不可部分完成的,而且會使用記憶體釋放語意來執行。

InterlockedBitTestAndSetAcquire

測試指定 LONG 值的指定位,並將其設定為 1。 作業是不可部分完成的,而且會使用取得記憶體排序語意來執行。

InterlockedBitTestAndSetRelease

測試指定 LONG 值的指定位,並將其設定為 1。 作業是不可部分完成的,而且會使用釋放記憶體排序語意來執行。

InterlockedCompareExchangeNoFence

在指定的值上執行不可部分完成的比較和交換作業。 函式會根據比較的結果,比較兩個指定的 32 位值,並與另一個 32 位值交換。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedCompareExchange16

在指定的值上執行不可部分完成的比較和交換作業。 函式會根據比較的結果,比較兩個指定的 16 位值,並與另一個 16 位值交換。

InterlockedCompareExchange16Acquire

在指定的值上執行不可部分完成的比較和交換作業。 函式會根據比較的結果,比較兩個指定的 16 位值,並與另一個 16 位值交換。 作業會使用取得記憶體排序語意來執行。

InterlockedCompareExchange16Release

在指定的值上執行不可部分完成的比較和交換作業。 函式會根據比較的結果,比較兩個指定的 16 位值,並與另一個 16 位值交換。 交換是使用釋放記憶體排序語意來執行。

InterlockedCompareExchange16NoFence

在指定的值上執行不可部分完成的比較和交換作業。 函式會根據比較的結果,比較兩個指定的 16 位值,並與另一個 16 位值交換。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedCompareExchangeNoFence64

在指定的值上執行不可部分完成的比較和交換作業。 函式會根據比較的結果,比較兩個指定的 64 位值,並與另一個 64 位值交換。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedCompareExchange128

在指定的值上執行不可部分完成的比較和交換作業。 函式會根據比較的結果,比較兩個指定的 128 位值,並與另一個 128 位值交換。

InterlockedCompareExchangePointerNoFence

在指定的值上執行不可部分完成的比較和交換作業。 函式會根據比較的結果,比較兩個指定的指標值,並與另一個指標值交換。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedDecrementNoFence

遞減 (減少一個) 指定 32 位變數的值作為不可部分完成的作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedDecrement16

遞減 (會減少一個) 指定 16 位變數的值做為不可部分完成的作業。

InterlockedDecrement16Acquire

遞減 (會減少一個) 指定 16 位變數的值做為不可部分完成的作業。 作業會使用取得記憶體排序語意來執行。

InterlockedDecrement16Release

遞減 (會減少一個) 指定 16 位變數的值做為不可部分完成的作業。 作業會以釋放記憶體排序語意來執行。

InterlockedDecrement16NoFence

遞減 (會減少一個) 指定 16 位變數的值做為不可部分完成的作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedDecrementNoFence64

遞減 (會減少一個) 指定 64 位變數的值做為不可部分完成的作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedExchangeNoFence

將 64 位變數設定為指定的值做為不可部分完成的作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedExchange8

將 8 位變數設定為指定的值做為不可部分完成的作業。

InterlockedExchange16Acquire

將 16 位變數設定為指定的值做為不可部分完成的作業。 作業是使用取得記憶體排序語意來執行。

InterlockedExchange16NoFence

將 16 位變數設定為指定的值做為不可部分完成的作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedExchangeNoFence64

將 64 位變數設定為指定的值做為不可部分完成的作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedExchangePointerNoFence

以不可部分完成的方式交換一組位址。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedExchangeAddNoFence

執行兩個 32 位值的不可部分完成新增。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedExchangeAddNoFence64

執行兩個 64 位值的不可部分完成新增。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedIncrementNoFence

遞增 (增加一個,) 指定之 32 位變數的值做為不可部分完成的作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedIncrement16

遞增 (以一個) 指定之 16 位變數的值做為不可部分完成的作業增加。

InterlockedIncrement16Acquire

遞增 (以一個) 指定之 16 位變數的值做為不可部分完成的作業增加。 作業是使用取得記憶體排序語意來執行。

InterlockedIncrement16Release

遞增 (以一個) 指定之 16 位變數的值做為不可部分完成的作業增加。 作業是使用釋放記憶體排序語意來執行。

InterlockedIncrement16NoFence

遞增 (以一個) 指定之 16 位變數的值做為不可部分完成的作業增加。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedIncrementNoFence64

遞增 (增加一) 指定 64 位變數的值做為不可部分完成的作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedOrNoFence

在指定的 LONG 值上執行不可部分完成的 OR 作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedOr8NoFence

在指定的 char 值上執行不可部分完成的 OR 作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedOr16NoFence

在指定的 SHORT 值上執行不可部分完成的 OR 作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedOr64NoFence

在指定的 LONGLONG 值上執行不可部分完成的 OR 作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedPushListSListEx

將單一連結清單插入另一個單一連結清單的前端。 多處理器系統上會同步處理清單的存取權。 這個版本的 方法不會使用 __fastcall 呼叫慣例。

InterlockedXorNoFence

在指定的 LONG 值上執行不可部分完成的 XOR 作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedXor8NoFence

在指定的 char 值上執行不可部分完成的 XOR 作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedXor16NoFence

在指定的 SHORT 值上執行不可部分完成的 XOR 作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

InterlockedXor64NoFence

在指定的 LONGLONG 值上執行不可部分完成的 XOR 作業。 作業會以不可部分完成的方式執行,但不使用記憶體屏障。

Windows 7

新函式

SetWaitableTimerEx

啟動指定的可等候計時器,並提供計時器的內容資訊。

TryAcquireSRWLockExclusive

嘗試以獨佔模式取得精簡讀取器/寫入器 (SRW) 鎖定。 如果呼叫成功,呼叫執行緒會取得鎖定的擁有權。

TryAcquireSRWLockShared

嘗試取得共用模式中 (SRW) 鎖定的讀取器/寫入器。 如果呼叫成功,呼叫執行緒會取得鎖定的擁有權。

新結構

REASON_CONTEXT

包含以 SetWaitableTimerEx啟動之計時器的內容資訊。