次の方法で共有


event::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 ストア アプリケーションでは、この呼び出しが現在のスレッドをブロックし、アプリケーションが応答しなくなる場合があるため、ASTA スレッドで wait_for_multiple を呼び出さないでください。

必要条件

ヘッダー: concrt.h

名前空間: concurrency

参照

関連項目

event クラス

event::wait メソッド

COOPERATIVE_TIMEOUT_INFINITE

COOPERATIVE_WAIT_TIMEOUT