エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

WaitHandle.WaitAny メソッド (WaitHandle[])

2013/12/12

指定した配列内のいずれかの要素がシグナルを受信するまで待機します。

Namespace:  System.Threading
アセンブリ:  mscorlib (mscorlib.dll 内)

public static int WaitAny(
	WaitHandle[] waitHandles
)

パラメーター

waitHandles
型: System.Threading.WaitHandle []
現在のインスタンスが待機する対象のオブジェクトを格納している配列。

戻り値

型: System.Int32
待機を実行するオブジェクトの配列インデックス。

例外条件
ArgumentNullException

waitHandles パラメーターが null です。

または

waitHandles 配列内の 1 つ以上のオブジェクトが null です。

NotSupportedException

waitHandles 内のオブジェクト数がシステムによって許可されている数を超えています。

ArgumentException

waitHandles が要素のない配列です。

このメソッドは、いずれかのハンドルがシグナルを受信すると待機を終了します。複数のオブジェクトが呼び出し中にシグナル状態になった場合、戻り値はすべてのシグナル状態オブジェクトのうち、最小インデックス値を持つシグナル状態オブジェクトの配列インデックスになります。一部の実装では、64 個を超えるハンドルが渡されると、NotSupportedException がスローされます。

このメソッド オーバーロードは、WaitAny(WaitHandle[], Int32) メソッド オーバーロードを呼び出し、millisecondsTimeout に -1 (または Timeout.Infinite) を指定することに相当します。

WaitAny メソッドを呼び出して、複数のスレッドのうち最初のスレッドの完了を待機する方法を、次の例に示します。

次のコードは、WaitAll(WaitHandle[]) メソッド オーバーロードの例の一部です。


// Wait for ANY subtask to complete.

// Create an array of ManualResetEvent wait handles. Each subtask will
// signal its ManualResetEvent when it is finished.
WaitHandle[] waitHandles = finished.ToArray();
int index = WaitHandle.WaitTimeout;

index = WaitHandle.WaitAny(waitHandles);


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示:
© 2015 Microsoft