コンカレンシー ランタイムを明示的に認識する手動リセット イベントです。
構文
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);
パラメーター
_Timeout
待機がタイムアウトするまでのミリ秒数を示します。値 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 パラメーターによって指定されます。
count
配列内のイベントの数は、_PPEvents パラメーターで指定されます。
_FWaitAll
値 true に設定した場合、_PPEvents パラメーターに指定された配列内のすべてのイベントがシグナル状態になって初めて待機条件が満たされたと判断されます。 値 false に設定した場合、_PPEvents パラメーターに指定された配列内のイベントが 1 つでもシグナル状態になれば待機条件が満たされたと判断されます。
_Timeout
待機がタイムアウトするまでのミリ秒数を示します。値 COOPERATIVE_TIMEOUT_INFINITE は、タイムアウトがないことを示します。
戻り値
待機条件が満たされた場合は、_PPEvents パラメーターに指定された配列内の、待機条件を満たしたインデックス。それ以外の場合は、条件が満たされることなく待機がタイムアウトしたことを示す COOPERATIVE_WAIT_TIMEOUT 値。
解説
_FWaitAll パラメーターの値を true に設定した場合は、すべてのイベントがシグナル状態になって初めて待機条件を満たしたことになります。その場合、この関数によって返されるインデックスには、COOPERATIVE_WAIT_TIMEOUT 値ではないという事実を除いて、特別な意味はありません。
重要
ユニバーサル Windows プラットフォーム (UWP) アプリケーションでは、この呼び出しが現在のスレッドをブロックし、アプリケーションが応答しなくなる場合があるため、ASTA スレッドで wait_for_multiple を呼び出さないでください。