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 表示沒有逾時。

傳回值

如果已滿足等候,則會傳回值 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 ,因為此呼叫可能會封鎖目前的執行緒,而且可能會導致應用程式變得沒有回應。

另請參閱

concurrency 命名空間