IAsyncResult.AsyncWaitHandle プロパティ
非同期操作が完了するまで待機するために使用する WaitHandle を取得します。
ReadOnly Property AsyncWaitHandle As WaitHandle
[C#]
WaitHandle AsyncWaitHandle {get;}
[C++]
__property WaitHandle* get_AsyncWaitHandle();
[JScript]
function get AsyncWaitHandle() : WaitHandle;
プロパティ値
非同期操作が完了するまで待機するために使用する WaitHandle 。
解説
この戻り値を使用すると、クライアントは非同期操作が完了するまで IsCompleted をポーリングするのではなく、非同期操作が完了するまで待機できます。この戻り値は、 WaitOne 、 WaitAny 、 WaitAll のいずれかの演算を実行する場合に使用します。
共通言語ランタイムは、Win32 同期プリミティブを反映した待機可能オブジェクトとして、 ManualResetEvent 、 AutoResetEvent 、 Mutex などを提供します。
実装時の注意: IAsyncResult を実装するオブジェクトは、 AsyncWaitHandle プロパティが読み取られるまで WaitHandle を作成する必要はありません。いずれの方法で割り当てるかは、 IAsyncResult を実装するオブジェクトが選択します。しかし、実装するオブジェクトが AsyncWaitHandle を作成した場合は、必要なときに待機を終了させる WaitHandle のシグナル通知は、そのオブジェクトが行います。たとえば、非同期に呼び出されたメソッドが返ると、呼び出し元に代わって System.Runtime.Remoting.Messaging.AsyncResult が待機を終了させます。一度作成された AsyncWaitHandle は、非同期操作を終了させるメソッドをユーザーが呼び出すまで、有効な状態に保つ必要があります。該当するメソッドが呼び出された時点で、 AsyncWaitHandle の後のオブジェクトは破棄できます。
呼び出し時の注意: (ポーリングではなく) 操作の完了を待機するクライアントは、待機対象の同期オブジェクトを取得するときにこのプロパティを使用します。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard