クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
Visual Studio 2008
Visual Studio
.NET Framework の拡張開発
スレッド処理
 待機ハンドル

  低帯域幅での表示をオンにする
このページは次のバージョンについて記述しています。
Microsoft Visual Studio 2008/.NET Framework 3.5

その他のバージョンについては、以下の情報を参照してください。
.NET Framework 開発者ガイド
待機ハンドル

更新 : 2007 年 11 月

WaitHandle クラスは、Win32 同期ハンドルをカプセル化し、複数の待機操作を実行できる、ランタイムのすべての同期オブジェクトを表すために使用します。待機ハンドルと他の同期オブジェクトの比較については、「同期プリミティブの概要」を参照してください。

WaitHandle クラス自体は抽象クラスです。派生クラスに加え、このクラスには、複数イベントの待機を有効にする静的メソッドがいくつかあります。WaitHandle の派生クラスは次のとおりです。

WaitHandleMarshalByRefObject の派生クラスであるため、アプリケーション ドメインの境界を越えてスレッドの動作を同期するために使用できます。

スレッドは、WaitOne インスタンス メソッドを呼び出して個々の待機ハンドルでブロックできます。さらに、WaitHandle クラスには、指定したすべての待機ハンドルのセットが通知を受けるまで待機するためのオーバーロードされた静的メソッド (WaitAll)、または指定したいずれかの待機ハンドルのセットが通知を受けるまで待機するためのオーバーロードされた静的メソッド (WaitAny) があります。これらのメソッドのオーバーロードは、待機を放棄するためのタイムアウト間隔と、待機状態に入る前に同期のコンテキストを終了する機会を提供して、他のスレッドが同期のコンテキストを使用できるようにします。

.NET Framework Version 2.0 の待機ハンドルには、静的な SignalAndWait メソッドもあります。このメソッドを使用すると、分割不可能な 1 回の操作でスレッドが 1 つの待機ハンドルに通知し、すぐに別の待機ハンドルを待機できます。

WaitHandle の派生クラスは、スレッド アフィニティが異なります。イベント待機ハンドル (EventWaitHandleAutoResetEvent、および ManualResetEvent) とセマフォには、スレッド アフィニティはありません。スレッドはいずれもイベント待機ハンドルやセマフォに通知できます。他方、ミューテックスには、スレッド アフィニティがあります。ミューテックスを所有するスレッドはミューテックスを解放する必要があり、所有していないミューテックスで ReleaseMutex メソッドを呼び出した場合は、例外がスローされます。

コミュニティ コンテンツ   コミュニティ コンテンツとは
新しいコンテンツの追加 RSS  注釈
Processing
© 2009 Microsoft Corporation. All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker