// // System.Threading.WaitHandle.cs // // Author: // Dick Porter (dick@ximian.com) // // (C) Ximian, Inc. http://www.ximian.com // using System.Runtime.CompilerServices; namespace System.Threading { public abstract class WaitHandle : MarshalByRefObject, IDisposable { [MethodImplAttribute(MethodImplOptions.InternalCall)] private static extern bool WaitAll_internal(WaitHandle[] handles, int ms, bool exitContext); public static bool WaitAll(WaitHandle[] waitHandles) { if(waitHandles.Length>64) { throw new NotSupportedException("Too many handles"); } for(int i=0; i64) { throw new NotSupportedException("Too many handles"); } for(int i=0; i Int32.MaxValue) { throw new ArgumentOutOfRangeException("Timeout out of range"); } if(waitHandles.Length>64) { throw new NotSupportedException("Too many handles"); } for(int i=0; i64) { throw new NotSupportedException("Too many handles"); } for(int i=0; i64) { throw new NotSupportedException("Too many handles"); } for(int i=0; i Int32.MaxValue) { throw new ArgumentOutOfRangeException("Timeout out of range"); } if(waitHandles.Length>64) { throw new NotSupportedException("Too many handles"); } for(int i=0; i