event 類別
其為並行執行階段明確察覺的手動重設事件。
語法
class event;
成員
公用建構函式
名稱 | 描述 |
---|---|
~event 解構函式 | 終結事件。 |
公用方法
名稱 | 描述 |
---|---|
reset | 將事件重設為非訊號狀態。 |
set | 發出事件的訊號。 |
等 | 等候事件收到訊號。 |
wait_for_multiple | 等候多個事件收到訊號。 |
公用常數
名稱 | 描述 |
---|---|
timeout_infinite | 值,表示等候應該永遠不會逾時。 |
備註
如需詳細資訊,請參閱 同步處理數據結構。
繼承階層架構
event
需求
標頭: concrt.h
命名空間: concurrency
event
建構新的事件。
_CRTIMP event();
備註
~事件
終結事件。
~event();
備註
當解構函式執行時,預期沒有任何線程在事件上等候。 允許事件解構仍在等候的執行緒,會導致未定義的行為發生。
reset
將事件重設為非訊號狀態。
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
表示沒有逾時。
傳回值
如果已滿足等候,則會傳回值0
COOPERATIVE_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
,因為此呼叫可能會封鎖目前的線程,並可能導致應用程式變得沒有回應。