내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

WaitHandle.WaitAny 메서드 (WaitHandle[])

2013-12-13

지정된 배열의 모든 요소가 신호를 받기를 기다립니다.

Namespace:  System.Threading
어셈블리:  mscorlib(mscorlib.dll)

public static int WaitAny(
	WaitHandle[] waitHandles
)

매개 변수

waitHandles
형식: System.Threading.WaitHandle []
현재 인스턴스에서 기다릴 개체가 포함된 배열입니다.

반환 값

형식: System.Int32
대기를 만족한 개체의 배열 인덱스입니다.

예외조건
ArgumentNullException

waitHandles 매개 변수가 null인 경우

-또는-

waitHandles 배열의 개체 중 하나 이상이 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

Windows Phone

표시:
© 2014 Microsoft