Export (0) Print
Expand All

WaitHandle.WaitAny Method (WaitHandle[], Int32)

Waits for any of the elements in the specified array to receive a signal, using a 32-bit signed integer to specify the time interval.

Namespace:  System.Threading
Assembly:  mscorlib (in mscorlib.dll)

public static int WaitAny(
	WaitHandle[] waitHandles,
	int millisecondsTimeout
)

Parameters

waitHandles
Type: System.Threading.WaitHandle[]

A WaitHandle array containing the objects for which the current instance will wait.

millisecondsTimeout
Type: System.Int32

The number of milliseconds to wait, or Timeout.Infinite (-1) to wait indefinitely.

Return Value

Type: System.Int32
The array index of the object that satisfied the wait, or WaitTimeout if no object satisfied the wait and a time interval equivalent to millisecondsTimeout has passed.

ExceptionCondition
ArgumentNullException

The waitHandles parameter is null.

-or-

One or more of the objects in the waitHandles array is null.

NotSupportedException

The number of objects in waitHandles is greater than the system permits.

ArgumentOutOfRangeException

millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.

AbandonedMutexException

The wait completed because a thread exited without releasing a mutex. This exception is not thrown on Windows 98 or Windows Millennium Edition.

ArgumentException

waitHandles is an array with no elements.

InvalidOperationException

The waitHandles array contains a transparent proxy for a WaitHandle in another application domain.

If millisecondsTimeout is zero, the method does not block. It tests the state of the wait handles and returns immediately.

The WaitAny method throws an AbandonedMutexException only when the wait completes because of an abandoned mutex. If waitHandles contains a released mutex with a lower index number than the abandoned mutex, the WaitAny method completes normally and the exception is not thrown.

This method returns when the wait terminates, either when any of the handles are signaled or when a timeout occurs. If more than one object becomes signaled during the call, the return value is the array index of the signaled object with the smallest index value of all the signaled objects. On some implementations, if more that 64 handles are passed, a NotSupportedException is thrown.

Calling this method overload is the same as calling the WaitAny(WaitHandle[], Int32, Boolean) overload and specifying false for exitContext.

.NET Framework

Supported in: 4.5, 4, 3.5 SP1, 3.0 SP2, 2.0 SP2

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Store apps

Supported in: Windows 8

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone Silverlight 8.1, Windows Phone Silverlight 8

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft