Пример #1
0
        public static int WaitAny(WaitHandle[] waitHandles, int millisecondsTimeout, bool exitContext)
        {
            WaitHandle.CheckArray(waitHandles, false);
            if (millisecondsTimeout < -1)
            {
                throw new ArgumentOutOfRangeException("millisecondsTimeout");
            }
            int result;

            try
            {
                if (exitContext)
                {
                    SynchronizationAttribute.ExitContext();
                }
                result = WaitHandle.WaitAny_internal(waitHandles, millisecondsTimeout, exitContext);
            }
            finally
            {
                if (exitContext)
                {
                    SynchronizationAttribute.EnterContext();
                }
            }
            return(result);
        }
Пример #2
0
        public static int WaitAny(WaitHandle[] waitHandles, TimeSpan timeout, bool exitContext)
        {
            WaitHandle.CheckArray(waitHandles, false);
            long num = (long)timeout.TotalMilliseconds;

            if (num < -1L || num > 2147483647L)
            {
                throw new ArgumentOutOfRangeException("timeout");
            }
            int result;

            try
            {
                if (exitContext)
                {
                    SynchronizationAttribute.ExitContext();
                }
                result = WaitHandle.WaitAny_internal(waitHandles, (int)num, exitContext);
            }
            finally
            {
                if (exitContext)
                {
                    SynchronizationAttribute.EnterContext();
                }
            }
            return(result);
        }
Пример #3
0
 public static int WaitAny(WaitHandle[] waitHandles)
 {
     WaitHandle.CheckArray(waitHandles, false);
     return(WaitHandle.WaitAny_internal(waitHandles, -1, false));
 }