WaitHandle.WaitAny Method (WaitHandle, TimeSpan)
Updated: July 2008
Waits for any of the elements in the specified array to receive a signal, using a TimeSpan to specify the time interval.
Assembly: mscorlib (in mscorlib.dll)
- Type: System.Threading.WaitHandle
A WaitHandle array containing the objects for which the current instance will wait.
The waitHandles parameter is null.
One or more of the objects in the waitHandles array is null.
The number of objects in waitHandles is greater than the system permits.
timeout is a negative number other than -1 milliseconds, which represents an infinite time-out.
timeout is greater than Int32.MaxValue.
The wait completed because a thread exited without releasing a mutex. This exception is not thrown on Windows 98 or Windows Millennium Edition.
waitHandles is an array with no elements.
The waitHandles array contains a transparent proxy for a WaitHandle in another application domain.
If timeout 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 time-out 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.
The maximum value for timeout is Int32.MaxValue.
Calling this method overload is the same as calling the WaitAny(WaitHandle, TimeSpan, Boolean) overload and specifying false for exitContext.
Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.