其為並行執行階段明確察覺的手動重設事件。
語法
class event;
成員
公用建構函式
| 名稱 | 描述 |
|---|---|
| ~event 解構函式 | 終結事件。 |
公用方法
| 名稱 | 描述 |
|---|---|
| reset | 將事件重設為非訊號狀態。 |
| set | 發出事件的訊號。 |
| 等 | 等候事件收到訊號。 |
| wait_for_multiple | 等候多個事件收到訊號。 |
公用常數
| 名稱 | 描述 |
|---|---|
| timeout_infinite | 值,表示等候應該永遠不會逾時。 |
備註
如需詳細資訊,請參閱 同步處理數據結構。
繼承階層架構
event
需求
標頭: concrt.h
命名空間: concurrency
事件
建構新的事件。
_CRTIMP event();
~事件
終結事件。
~event();
備註
當解構函式執行時,預期沒有任何線程在事件上等候。 允許事件解構仍在等候的執行緒,會導致未定義的行為發生。
重置
將事件重設為非訊號狀態。
void reset();
set
發出事件的訊號。
void set();
備註
發出事件訊號會使事件上正在等候的任意數目內容變為可執行。
timeout_infinite
值,表示等候應該永遠不會逾時。
static const unsigned int timeout_infinite = COOPERATIVE_TIMEOUT_INFINITE;
wait
等候事件收到訊號。
size_t wait(unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);
參數
_超時
表示等候逾時之前的毫秒數。值 COOPERATIVE_TIMEOUT_INFINITE 表示沒有逾時。
傳回值
如果已滿足等候,則會傳回值0COOPERATIVE_WAIT_TIMEOUT;否則,表示等候逾時而未收到事件訊號。
重要
在 通用 Windows 平台 (UWP) 應用程式中,請勿在 ASTA 線程上呼叫wait,因為此呼叫可能會封鎖目前的線程,而且可能會導致應用程式變得沒有回應。
wait_for_multiple
等候多個事件收到訊號。
static size_t __cdecl wait_for_multiple(
_In_reads_(count) event** _PPEvents,
size_t count,
bool _FWaitAll,
unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);
參數
_PPEvents
要等候的事件陣列。 陣列內的事件數目是由 count 參數表示。
計數
參數中 _PPEvents 提供之陣列內的事件計數。
_FWaitAll
如果設定為 值 true,參數會指定參數中 _PPEvents 提供之陣列內的所有事件都必須發出訊號,才能滿足等候。 如果設定為 值 false,它會指定參數中 _PPEvents 提供的任何事件都會滿足等候。
_超時
表示等候逾時之前的毫秒數。值 COOPERATIVE_TIMEOUT_INFINITE 表示沒有逾時。
傳回值
如果已滿足等候,則會在符合等候條件的參數中 _PPEvents 提供的數位件索引;否則,表示 COOPERATIVE_WAIT_TIMEOUT 等候逾時而未滿足條件的值。
備註
如果 參數 _FWaitAll 設定為 值 true ,表示所有事件都必須發出訊號以滿足等候,則函式傳回的索引除了不是值 COOPERATIVE_WAIT_TIMEOUT之外,沒有特殊意義。
重要
在 通用 Windows 平台 (UWP) 應用程式中,請勿在 ASTA 線程上呼叫wait_for_multiple,因為此呼叫可能會封鎖目前的線程,而且可能會導致應用程式變得沒有回應。