EventWaitHandle、AutoResetEvent、CountdownEvent、および ManualResetEvent
イベント待機ハンドルにより、スレッドは相互に通知を行い、相手の通知を待機して動作を同期できます。 これらの同期イベントは Win32 待機ハンドルに基づいており、通知されたときに自動的にリセットされるイベントと手動でリセットするイベントの 2 種類に分けられます。
イベント待機ハンドルは、Monitor クラスと同様の多くの同期シナリオで有効です。 イベント待機ハンドルは、多くの場合、Monitor.Wait メソッドや Monitor.Pulse メソッドよりも簡単に使用でき、通知をより細かく制御できます。 名前付きイベント待機ハンドルは、アプリケーション ドメイン間やプロセス間で動作を同期させるためにも使用できます。これに対し、モニターはアプリケーション ドメインに対してローカルです。
このセクションの内容
EventWaitHandle
EventWaitHandle クラスは、自動または手動のリセット イベントを表します。また、ローカル イベントまたは名前付きシステム イベントのいずれかです。AutoResetEvent
AutoResetEvent クラスは EventWaitHandle から派生し、自動的にリセットされるローカル イベントを表します。ManualResetEvent と ManualResetEventSlim
ManualResetEvent クラスは EventWaitHandle から派生し、手動でリセットする必要があるローカル イベントを表します。 ManualResetEventSlim クラスは、同じプロセス内のイベントに使用できる軽量でさらに高速なバージョンです。CountdownEvent
CountdownEvent クラスは、待機ハンドルを使用するコードで fork/join 並列化パターンを実装する簡単な方法を提供します。
関連項目
- 待機ハンドル
WaitHandle クラスは、EventWaitHandle、Semaphore、および Mutex クラスの基本クラスです。 すべての種類の待機ハンドルを使用する場合に役立つ SignalAndWait や WaitAll などの静的メソッドを含みます。