zoukankan      html  css  js  c++  java
  • System.Threading.WaitHandle.cs

    ylbtech-System.Threading.WaitHandle.cs
    1.返回顶部
    1、
    #region 程序集 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    // C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.5mscorlib.dll
    #endregion
    
    using System.Runtime.ConstrainedExecution;
    using System.Runtime.InteropServices;
    using System.Security;
    using Microsoft.Win32.SafeHandles;
    
    namespace System.Threading
    {
        //
        // 摘要:
        //     封装等待对共享资源的独占访问的操作系统特定的对象。
        [ComVisible(true)]
        public abstract class WaitHandle : MarshalByRefObject, IDisposable
        {
            //
            // 摘要:
            //     指示在任何等待句柄终止之前 System.Threading.WaitHandle.WaitAny(System.Threading.WaitHandle[],System.Int32,System.Boolean)
            //     操作已超时。 此字段为常数。
            public const int WaitTimeout = 258;
            //
            // 摘要:
            //     表示无效的本机操作系统句柄。 此字段为只读。
            protected static readonly IntPtr InvalidHandle;
    
            //
            // 摘要:
            //     初始化 System.Threading.WaitHandle 类的新实例。
            protected WaitHandle();
    
            //
            // 摘要:
            //     获取或设置本机操作系统句柄。
            //
            // 返回结果:
            //     IntPtr,它表示本机操作系统句柄。 默认为 System.Threading.WaitHandle.InvalidHandle 字段的值。
            [Obsolete("Use the SafeWaitHandle property instead.")]
            public virtual IntPtr Handle { get; set; }
            //
            // 摘要:
            //     获取或设置本机操作系统句柄。
            //
            // 返回结果:
            //     表示本机操作系统句柄的 Microsoft.Win32.SafeHandles.SafeWaitHandle。
            public SafeWaitHandle SafeWaitHandle { get; set; }
    
            //
            // 摘要:
            //     向一个 System.Threading.WaitHandle 发出信号并等待另一个,指定超时间隔为 32 位有符号整数,并指定在进入等待前是否退出上下文的同步域。
            //
            // 参数:
            //   toSignal:
            //     要发出信号的 System.Threading.WaitHandle。
            //
            //   toWaitOn:
            //     要等待的 System.Threading.WaitHandle。
            //
            //   millisecondsTimeout:
            //     一个整数,表示要等待的间隔。 如果值是 System.Threading.Timeout.Infinite,即 -1,则等待是无限期的。
            //
            //   exitContext:
            //     如果等待之前先退出上下文的同步域(如果在同步上下文中),并在稍后重新获取它,则为 true;否则为 false。
            //
            // 返回结果:
            //     如果信号发送和等待均成功完成,则为 true;如果信号发送完成,但等待超时,则为 false。
            //
            // 异常:
            //   T:System.ArgumentNullException:
            //     toSignal 为 null。 - 或 - toWaitOn 为 null。
            //
            //   T:System.NotSupportedException:
            //     对具有 System.STAThreadAttribute 的线程调用了此方法。
            //
            //   T:System.PlatformNotSupportedException:
            //     Windows 98 或 Windows Millennium Edition 不支持此方法。
            //
            //   T:System.InvalidOperationException:
            //     toSignal 是信号量,已达到最大计数。
            //
            //   T:System.InvalidOperationException:
            //     toSignal 是信号量,已达到最大计数。
            //
            //   T:System.ArgumentOutOfRangeException:
            //     millisecondsTimeout 是一个非 -1 的负数,而 -1 表示无限期超时。
            //
            //   T:System.Threading.AbandonedMutexException:
            //     线程退出时未释放互斥体,等待过程已终止。 在 Windows 98 或 Windows Millennium Edition 中不引发此异常。
            [SecuritySafeCritical]
            public static bool SignalAndWait(WaitHandle toSignal, WaitHandle toWaitOn, int millisecondsTimeout, bool exitContext);
            //
            // 摘要:
            //     向一个 System.Threading.WaitHandle 发出信号并等待另一个,指定超时间隔为 System.TimeSpan,并指定在进入等待前是否退出上下文的同步域。
            //
            // 参数:
            //   toSignal:
            //     要发出信号的 System.Threading.WaitHandle。
            //
            //   toWaitOn:
            //     要等待的 System.Threading.WaitHandle。
            //
            //   timeout:
            //     一个 System.TimeSpan,表示要等待的间隔。 如果值是 -1,则等待是无限期的。
            //
            //   exitContext:
            //     如果等待之前先退出上下文的同步域(如果在同步上下文中),并在稍后重新获取它,则为 true;否则为 false。
            //
            // 返回结果:
            //     如果信号发送和等待均成功完成,则为 true;如果信号发送完成,但等待超时,则为 false。
            //
            // 异常:
            //   T:System.ArgumentNullException:
            //     toSignal 为 null。 - 或 - toWaitOn 为 null。
            //
            //   T:System.NotSupportedException:
            //     在一个具有 System.STAThreadAttribute 的线程上调用了该方法。
            //
            //   T:System.PlatformNotSupportedException:
            //     Windows 98 或 Windows Millennium Edition 不支持此方法。
            //
            //   T:System.InvalidOperationException:
            //     toSignal 是信号量,已达到最大计数。
            //
            //   T:System.ArgumentOutOfRangeException:
            //     timeout 计算为 -1 以外的负毫秒数。 - 或 - timeout 大于 System.Int32.MaxValue。
            //
            //   T:System.Threading.AbandonedMutexException:
            //     线程退出时未释放互斥体,等待过程已终止。 在 Windows 98 或 Windows Millennium Edition 中不引发此异常。
            public static bool SignalAndWait(WaitHandle toSignal, WaitHandle toWaitOn, TimeSpan timeout, bool exitContext);
            //
            // 摘要:
            //     向一个 System.Threading.WaitHandle 发出信号并等待另一个。
            //
            // 参数:
            //   toSignal:
            //     要发出信号的 System.Threading.WaitHandle。
            //
            //   toWaitOn:
            //     要等待的 System.Threading.WaitHandle。
            //
            // 返回结果:
            //     如果信号和等待都成功完成,则为 true;如果等待没有完成,则此方法不返回。
            //
            // 异常:
            //   T:System.ArgumentNullException:
            //     toSignal 为 null。 - 或 - toWaitOn 为 null。
            //
            //   T:System.NotSupportedException:
            //     在一个具有 System.STAThreadAttribute 的线程上调用了该方法。
            //
            //   T:System.PlatformNotSupportedException:
            //     Windows 98 或 Windows Millennium Edition 不支持此方法。
            //
            //   T:System.InvalidOperationException:
            //     toSignal 是信号量,已达到最大计数。
            //
            //   T:System.Threading.AbandonedMutexException:
            //     线程退出时未释放互斥体,等待过程已终止。 在 Windows 98 或 Windows Millennium Edition 中不引发此异常。
            public static bool SignalAndWait(WaitHandle toSignal, WaitHandle toWaitOn);
            //
            // 摘要:
            //     等待指定数组中的所有元素接收信号,同时使用 System.TimeSpan 值指定时间间隔。
            //
            // 参数:
            //   waitHandles:
            //     一个 WaitHandle 数组,包含当前实例将等待的对象。 此数组不能包含对同一对象的多个引用。
            //
            //   timeout:
            //     一个 System.TimeSpan,表示等待的毫秒数;或者一个 System.TimeSpan,表示 -1 毫秒(无限期等待)。
            //
            // 返回结果:
            //     如果 waitHandles 中的每个元素都已收到信号,则为 true;否则为 false。
            //
            // 异常:
            //   T:System.ArgumentNullException:
            //     waitHandles 参数为 null。 - 或 - waitHandles 数组中的一个或多个对象为 null。 - 或 - waitHandles
            //     是不含任何元素的数组。
            //
            //   T:System.DuplicateWaitObjectException:
            //     waitHandles 数组包含重复的元素。
            //
            //   T:System.NotSupportedException:
            //     waitHandles 中对象的数目大于系统允许的数目。 - 或 - System.STAThreadAttribute 特性应用于当前线程的线程过程,且
            //     waitHandles 包含多个元素。
            //
            //   T:System.ArgumentOutOfRangeException:
            //     timeout 是一个非 -1 毫秒的负数,而 -1 表示无限期超时。 - 或 - timeout 大于 System.Int32.MaxValue。
            //
            //   T:System.Threading.AbandonedMutexException:
            //     线程退出时未释放互斥体,等待过程已终止。 在 Windows 98 或 Windows Millennium Edition 中不引发此异常。
            //
            //   T:System.InvalidOperationException:
            //     waitHandles 数组包含另一个应用程序域中的 System.Threading.WaitHandle 的透明代理。
            public static bool WaitAll(WaitHandle[] waitHandles, TimeSpan timeout);
            //
            // 摘要:
            //     等待指定数组中的所有元素收到信号,使用 System.Int32 值指定时间间隔,并指定是否在等待之前退出同步域。
            //
            // 参数:
            //   waitHandles:
            //     一个 WaitHandle 数组,包含当前实例将等待的对象。 此数组不能包含对同一对象的多个引用(重复的元素)。
            //
            //   millisecondsTimeout:
            //     等待的毫秒数,或为 System.Threading.Timeout.Infinite (-1),表示无限期等待。
            //
            //   exitContext:
            //     如果等待之前先退出上下文的同步域(如果在同步上下文中),并在稍后重新获取它,则为 true;否则为 false。
            //
            // 返回结果:
            //     如果 waitHandles 中的每个元素都已收到信号,则为 true;否则为 false。
            //
            // 异常:
            //   T:System.ArgumentNullException:
            //     waitHandles 参数为 null。 - 或 - waitHandles 数组中的一个或多个对象为 null。 - 或 - waitHandles
            //     是不含元素的数组,并且 .NET Framework 的版本为 2.0 或更高。
            //
            //   T:System.DuplicateWaitObjectException:
            //     waitHandles 数组包含重复的元素。
            //
            //   T:System.NotSupportedException:
            //     waitHandles 中对象的数目大于系统允许的数目。 - 或 - System.STAThreadAttribute 特性应用于当前线程的线程过程,且
            //     waitHandles 包含多个元素。
            //
            //   T:System.ApplicationException:
            //     waitHandles 是不含元素的数组,并且 .NET Framework 的版本为 1.0 或 1.1。
            //
            //   T:System.ArgumentOutOfRangeException:
            //     millisecondsTimeout 是一个非 -1 的负数,而 -1 表示无限期超时。
            //
            //   T:System.Threading.AbandonedMutexException:
            //     线程退出时未释放互斥体,等待过程已终止。 在 Windows 98 或 Windows Millennium Edition 中不引发此异常。
            //
            //   T:System.InvalidOperationException:
            //     waitHandles 数组包含另一个应用程序域中的 System.Threading.WaitHandle 的透明代理。
            [SecuritySafeCritical]
            public static bool WaitAll(WaitHandle[] waitHandles, int millisecondsTimeout, bool exitContext);
            //
            // 摘要:
            //     等待指定数组中的所有元素收到信号,使用 System.TimeSpan 值指定时间间隔,并指定是否在等待之前退出同步域。
            //
            // 参数:
            //   waitHandles:
            //     一个 WaitHandle 数组,包含当前实例将等待的对象。 此数组不能包含对同一对象的多个引用。
            //
            //   timeout:
            //     一个 System.TimeSpan,表示等待的毫秒数;或者一个 System.TimeSpan,表示 -1 毫秒(无限期等待)。
            //
            //   exitContext:
            //     如果等待之前先退出上下文的同步域(如果在同步上下文中),并在稍后重新获取它,则为 true;否则为 false。
            //
            // 返回结果:
            //     如果 waitHandles 中的每个元素都收到信号,则为 true;否则为 false。
            //
            // 异常:
            //   T:System.ArgumentNullException:
            //     waitHandles 参数为 null。 - 或 - waitHandles 数组中的一个或多个对象为 null。 - 或 - waitHandles
            //     是不含元素的数组,并且 .NET Framework 的版本为 2.0 或更高。
            //
            //   T:System.DuplicateWaitObjectException:
            //     waitHandles 数组包含重复的元素。
            //
            //   T:System.NotSupportedException:
            //     waitHandles 中对象的数目大于系统允许的数目。 - 或 - System.STAThreadAttribute 特性应用于当前线程的线程过程,且
            //     waitHandles 包含多个元素。
            //
            //   T:System.ApplicationException:
            //     waitHandles 是不含元素的数组,并且 .NET Framework 的版本为 1.0 或 1.1。
            //
            //   T:System.ArgumentOutOfRangeException:
            //     timeout 是一个非 -1 毫秒的负数,而 -1 表示无限期超时。 - 或 - timeout 大于 System.Int32.MaxValue。
            //
            //   T:System.Threading.AbandonedMutexException:
            //     线程退出时未释放互斥体,等待过程已终止。 在 Windows 98 或 Windows Millennium Edition 中不引发此异常。
            //
            //   T:System.InvalidOperationException:
            //     waitHandles 数组包含另一个应用程序域中的 System.Threading.WaitHandle 的透明代理。
            public static bool WaitAll(WaitHandle[] waitHandles, TimeSpan timeout, bool exitContext);
            //
            // 摘要:
            //     等待指定数组中的所有元素都收到信号。
            //
            // 参数:
            //   waitHandles:
            //     一个 WaitHandle 数组,包含当前实例将等待的对象。 此数组不能包含对同一对象的多个引用。
            //
            // 返回结果:
            //     如果 waitHandles 中的每个元素都收到信号,则返回 true;否则该方法永不返回。
            //
            // 异常:
            //   T:System.ArgumentNullException:
            //     waitHandles 参数为 null。 - 或 - waitHandles 数组中的一个或多个对象为 null。 - 或 - waitHandles
            //     是不含元素的数组,并且 .NET Framework 的版本为 2.0 或更高。
            //
            //   T:System.DuplicateWaitObjectException:
            //     waitHandles 数组包含重复的元素。
            //
            //   T:System.NotSupportedException:
            //     waitHandles 中对象的数目大于系统允许的数目。 - 或 - System.STAThreadAttribute 特性应用于当前线程的线程过程,且
            //     waitHandles 包含多个元素。
            //
            //   T:System.ApplicationException:
            //     waitHandles 是不含元素的数组,并且 .NET Framework 的版本为 1.0 或 1.1。
            //
            //   T:System.Threading.AbandonedMutexException:
            //     线程退出时未释放互斥体,等待过程已终止。 在 Windows 98 或 Windows Millennium Edition 中不引发此异常。
            //
            //   T:System.InvalidOperationException:
            //     waitHandles 数组包含另一个应用程序域中的 System.Threading.WaitHandle 的透明代理。
            public static bool WaitAll(WaitHandle[] waitHandles);
            //
            // 摘要:
            //     等待指定数组中的所有元素接收信号,同时使用 System.Int32 值指定时间间隔。
            //
            // 参数:
            //   waitHandles:
            //     一个 WaitHandle 数组,包含当前实例将等待的对象。 此数组不能包含对同一对象的多个引用(重复的元素)。
            //
            //   millisecondsTimeout:
            //     等待的毫秒数,或为 System.Threading.Timeout.Infinite (-1),表示无限期等待。
            //
            // 返回结果:
            //     如果 waitHandles 中的每个元素都已收到信号,则为 true;否则为 false。
            //
            // 异常:
            //   T:System.ArgumentNullException:
            //     waitHandles 参数为 null。 - 或 - waitHandles 数组中的一个或多个对象为 null。 - 或 - waitHandles
            //     是不含任何元素的数组。
            //
            //   T:System.DuplicateWaitObjectException:
            //     waitHandles 数组包含重复的元素。
            //
            //   T:System.NotSupportedException:
            //     waitHandles 中对象的数目大于系统允许的数目。 - 或 - System.STAThreadAttribute 特性应用于当前线程的线程过程,且
            //     waitHandles 包含多个元素。
            //
            //   T:System.ArgumentOutOfRangeException:
            //     millisecondsTimeout 是一个非 -1 的负数,而 -1 表示无限期超时。
            //
            //   T:System.Threading.AbandonedMutexException:
            //     线程退出时未释放互斥体,等待过程已终止。 在 Windows 98 或 Windows Millennium Edition 中不引发此异常。
            //
            //   T:System.InvalidOperationException:
            //     waitHandles 数组包含另一个应用程序域中的 System.Threading.WaitHandle 的透明代理。
            public static bool WaitAll(WaitHandle[] waitHandles, int millisecondsTimeout);
            //
            // 摘要:
            //     等待指定数组中的任意元素接收信号,同时使用 32 位带符号整数指定时间间隔。
            //
            // 参数:
            //   waitHandles:
            //     一个 WaitHandle 数组,包含当前实例将等待的对象。
            //
            //   millisecondsTimeout:
            //     等待的毫秒数,或为 System.Threading.Timeout.Infinite (-1),表示无限期等待。
            //
            // 返回结果:
            //     满足等待的对象的数组索引;如果没有任何对象满足等待,并且等效于 millisecondsTimeout 的时间间隔已过,则为 System.Threading.WaitHandle.WaitTimeout。
            //
            // 异常:
            //   T:System.ArgumentNullException:
            //     waitHandles 参数为 null。 - 或 - waitHandles 数组中的一个或多个对象为 null。
            //
            //   T:System.NotSupportedException:
            //     waitHandles 中对象的数目大于系统允许的数目。
            //
            //   T:System.ArgumentOutOfRangeException:
            //     millisecondsTimeout 是一个非 -1 的负数,而 -1 表示无限期超时。
            //
            //   T:System.Threading.AbandonedMutexException:
            //     线程退出时未释放互斥体,等待过程已终止。 在 Windows 98 或 Windows Millennium Edition 中不引发此异常。
            //
            //   T:System.ArgumentException:
            //     waitHandles 是不含任何元素的数组。
            //
            //   T:System.InvalidOperationException:
            //     waitHandles 数组包含另一个应用程序域中的 System.Threading.WaitHandle 的透明代理。
            [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
            public static int WaitAny(WaitHandle[] waitHandles, int millisecondsTimeout);
            //
            // 摘要:
            //     等待指定数组中的任一元素收到信号。
            //
            // 参数:
            //   waitHandles:
            //     一个 WaitHandle 数组,包含当前实例将等待的对象。
            //
            // 返回结果:
            //     满足等待的对象的数组索引。
            //
            // 异常:
            //   T:System.ArgumentNullException:
            //     waitHandles 参数为 null。 - 或 - waitHandles 数组中的一个或多个对象为 null。
            //
            //   T:System.NotSupportedException:
            //     waitHandles 中对象的数目大于系统允许的数目。
            //
            //   T:System.ApplicationException:
            //     waitHandles 是不含元素的数组,并且 .NET Framework 的版本为 1.0 或 1.1。
            //
            //   T:System.Threading.AbandonedMutexException:
            //     线程退出时未释放互斥体,等待过程已终止。 在 Windows 98 或 Windows Millennium Edition 中不引发此异常。
            //
            //   T:System.ArgumentException:
            //     waitHandles 是不含元素的数组,并且 .NET Framework 的版本为 2.0 或更高。
            //
            //   T:System.InvalidOperationException:
            //     waitHandles 数组包含另一个应用程序域中的 System.Threading.WaitHandle 的透明代理。
            [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
            public static int WaitAny(WaitHandle[] waitHandles);
            //
            // 摘要:
            //     等待指定数组中的任意元素接收信号,同时使用 System.TimeSpan 指定时间间隔。
            //
            // 参数:
            //   waitHandles:
            //     一个 WaitHandle 数组,包含当前实例将等待的对象。
            //
            //   timeout:
            //     表示等待的毫秒数的 System.TimeSpan,或表示 -1 毫秒(无限期等待)的 System.TimeSpan。
            //
            // 返回结果:
            //     满足等待的对象的数组索引;如果没有任何对象满足等待,并且等效于 timeout 的时间间隔已过,则为 System.Threading.WaitHandle.WaitTimeout。
            //
            // 异常:
            //   T:System.ArgumentNullException:
            //     waitHandles 参数为 null。 - 或 - waitHandles 数组中的一个或多个对象为 null。
            //
            //   T:System.NotSupportedException:
            //     waitHandles 中对象的数目大于系统允许的数目。
            //
            //   T:System.ArgumentOutOfRangeException:
            //     timeout 是一个非 -1 毫秒的负数,而 -1 表示无限期超时。 - 或 - timeout 大于 System.Int32.MaxValue。
            //
            //   T:System.Threading.AbandonedMutexException:
            //     线程退出时未释放互斥体,等待过程已终止。 在 Windows 98 或 Windows Millennium Edition 中不引发此异常。
            //
            //   T:System.ArgumentException:
            //     waitHandles 是不含任何元素的数组。
            //
            //   T:System.InvalidOperationException:
            //     waitHandles 数组包含另一个应用程序域中的 System.Threading.WaitHandle 的透明代理。
            [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
            public static int WaitAny(WaitHandle[] waitHandles, TimeSpan timeout);
            //
            // 摘要:
            //     等待指定数组中的任一元素收到信号,使用 System.TimeSpan 指定时间间隔并指定是否在等待之前退出同步域。
            //
            // 参数:
            //   waitHandles:
            //     一个 WaitHandle 数组,包含当前实例将等待的对象。
            //
            //   timeout:
            //     表示等待的毫秒数的 System.TimeSpan,或表示 -1 毫秒(无限期等待)的 System.TimeSpan。
            //
            //   exitContext:
            //     如果等待之前先退出上下文的同步域(如果在同步上下文中),并在稍后重新获取它,则为 true;否则为 false。
            //
            // 返回结果:
            //     满足等待的对象的数组索引;如果没有任何对象满足等待,并且等效于 timeout 的时间间隔已过,则为 System.Threading.WaitHandle.WaitTimeout。
            //
            // 异常:
            //   T:System.ArgumentNullException:
            //     waitHandles 参数为 null。 - 或 - waitHandles 数组中的一个或多个对象为 null。
            //
            //   T:System.NotSupportedException:
            //     waitHandles 中对象的数目大于系统允许的数目。
            //
            //   T:System.ApplicationException:
            //     waitHandles 是不含元素的数组,并且 .NET Framework 的版本为 1.0 或 1.1。
            //
            //   T:System.ArgumentOutOfRangeException:
            //     timeout 是一个非 -1 毫秒的负数,而 -1 表示无限期超时。 - 或 - timeout 大于 System.Int32.MaxValue。
            //
            //   T:System.Threading.AbandonedMutexException:
            //     线程退出时未释放互斥体,等待过程已终止。 在 Windows 98 或 Windows Millennium Edition 中不引发此异常。
            //
            //   T:System.ArgumentException:
            //     waitHandles 是不含元素的数组,并且 .NET Framework 的版本为 2.0 或更高。
            //
            //   T:System.InvalidOperationException:
            //     waitHandles 数组包含另一个应用程序域中的 System.Threading.WaitHandle 的透明代理。
            [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
            public static int WaitAny(WaitHandle[] waitHandles, TimeSpan timeout, bool exitContext);
            //
            // 摘要:
            //     等待指定数组中的任一元素收到信号,使用 32 位带符号整数指定时间间隔并指定是否在等待之前退出同步域。
            //
            // 参数:
            //   waitHandles:
            //     一个 WaitHandle 数组,包含当前实例将等待的对象。
            //
            //   millisecondsTimeout:
            //     等待的毫秒数,或为 System.Threading.Timeout.Infinite (-1),表示无限期等待。
            //
            //   exitContext:
            //     如果等待之前先退出上下文的同步域(如果在同步上下文中),并在稍后重新获取它,则为 true;否则为 false。
            //
            // 返回结果:
            //     满足等待的对象的数组索引;如果没有任何对象满足等待,并且等效于 millisecondsTimeout 的时间间隔已过,则为 System.Threading.WaitHandle.WaitTimeout。
            //
            // 异常:
            //   T:System.ArgumentNullException:
            //     waitHandles 参数为 null。 - 或 - waitHandles 数组中的一个或多个对象为 null。
            //
            //   T:System.NotSupportedException:
            //     waitHandles 中对象的数目大于系统允许的数目。
            //
            //   T:System.ApplicationException:
            //     waitHandles 是不含元素的数组,并且 .NET Framework 的版本为 1.0 或 1.1。
            //
            //   T:System.ArgumentOutOfRangeException:
            //     millisecondsTimeout 是一个非 -1 的负数,而 -1 表示无限期超时。
            //
            //   T:System.Threading.AbandonedMutexException:
            //     线程退出时未释放互斥体,等待过程已终止。 在 Windows 98 或 Windows Millennium Edition 中不引发此异常。
            //
            //   T:System.ArgumentException:
            //     waitHandles 是不含元素的数组,并且 .NET Framework 的版本为 2.0 或更高。
            //
            //   T:System.InvalidOperationException:
            //     waitHandles 数组包含另一个应用程序域中的 System.Threading.WaitHandle 的透明代理。
            [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
            [SecuritySafeCritical]
            public static int WaitAny(WaitHandle[] waitHandles, int millisecondsTimeout, bool exitContext);
            //
            // 摘要:
            //     在派生类中被重写时,释放由当前 System.Threading.WaitHandle 持有的所有资源。
            public virtual void Close();
            //
            // 摘要:
            //     释放由 System.Threading.WaitHandle 类的当前实例使用的所有资源。
            public void Dispose();
            //
            // 摘要:
            //     阻止当前线程,直到当前的 System.Threading.WaitHandle 收到信号为止,同时使用 32 位带符号整数指定时间间隔,并指定是否在等待之前退出同步域。
            //
            // 参数:
            //   millisecondsTimeout:
            //     等待的毫秒数,或为 System.Threading.Timeout.Infinite (-1),表示无限期等待。
            //
            //   exitContext:
            //     如果等待之前先退出上下文的同步域(如果在同步上下文中),并在稍后重新获取它,则为 true;否则为 false。
            //
            // 返回结果:
            //     如果当前实例收到信号,则为 true;否则为 false。
            //
            // 异常:
            //   T:System.ObjectDisposedException:
            //     当前实例已被释放。
            //
            //   T:System.ArgumentOutOfRangeException:
            //     millisecondsTimeout 是一个非 -1 的负数,而 -1 表示无限期超时。
            //
            //   T:System.Threading.AbandonedMutexException:
            //     线程退出时未释放互斥体,等待过程已终止。 在 Windows 98 或 Windows Millennium Edition 中不引发此异常。
            //
            //   T:System.InvalidOperationException:
            //     当前实例是另一个应用程序域中的 System.Threading.WaitHandle 的透明代理。
            public virtual bool WaitOne(int millisecondsTimeout, bool exitContext);
            //
            // 摘要:
            //     阻止当前线程,直到当前实例收到信号,同时使用 System.TimeSpan 指定时间间隔。
            //
            // 参数:
            //   timeout:
            //     表示等待的毫秒数的 System.TimeSpan,或表示 -1 毫秒(无限期等待)的 System.TimeSpan。
            //
            // 返回结果:
            //     如果当前实例收到信号,则为 true;否则为 false。
            //
            // 异常:
            //   T:System.ObjectDisposedException:
            //     当前实例已被释放。
            //
            //   T:System.ArgumentOutOfRangeException:
            //     timeout 是一个非 -1 毫秒的负数,而 -1 表示无限期超时。 - 或 - timeout 大于 System.Int32.MaxValue。
            //
            //   T:System.Threading.AbandonedMutexException:
            //     线程退出时未释放互斥体,等待过程已终止。 在 Windows 98 或 Windows Millennium Edition 中不引发此异常。
            //
            //   T:System.InvalidOperationException:
            //     当前实例是另一个应用程序域中的 System.Threading.WaitHandle 的透明代理。
            public virtual bool WaitOne(TimeSpan timeout);
            //
            // 摘要:
            //     阻止当前线程,直到当前 System.Threading.WaitHandle 收到信号,同时使用 32 位带符号整数指定时间间隔。
            //
            // 参数:
            //   millisecondsTimeout:
            //     等待的毫秒数,或为 System.Threading.Timeout.Infinite (-1),表示无限期等待。
            //
            // 返回结果:
            //     如果当前实例收到信号,则为 true;否则为 false。
            //
            // 异常:
            //   T:System.ObjectDisposedException:
            //     当前实例已被释放。
            //
            //   T:System.ArgumentOutOfRangeException:
            //     millisecondsTimeout 是一个非 -1 的负数,而 -1 表示无限期超时。
            //
            //   T:System.Threading.AbandonedMutexException:
            //     线程退出时未释放互斥体,等待过程已终止。 在 Windows 98 或 Windows Millennium Edition 中不引发此异常。
            //
            //   T:System.InvalidOperationException:
            //     当前实例是另一个应用程序域中的 System.Threading.WaitHandle 的透明代理。
            public virtual bool WaitOne(int millisecondsTimeout);
            //
            // 摘要:
            //     使用 System.TimeSpan 指定时间间隔并指定是否在等待之前退出同步域,以此阻止当前线程,直到当前的实例收到信号。
            //
            // 参数:
            //   timeout:
            //     表示等待的毫秒数的 System.TimeSpan,或表示 -1 毫秒(无限期等待)的 System.TimeSpan。
            //
            //   exitContext:
            //     如果等待之前先退出上下文的同步域(如果在同步上下文中),并在稍后重新获取它,则为 true;否则为 false。
            //
            // 返回结果:
            //     如果当前实例收到信号,则为 true;否则为 false。
            //
            // 异常:
            //   T:System.ObjectDisposedException:
            //     当前实例已被释放。
            //
            //   T:System.ArgumentOutOfRangeException:
            //     timeout 是一个非 -1 毫秒的负数,而 -1 表示无限期超时。 - 或 - timeout 大于 System.Int32.MaxValue。
            //
            //   T:System.Threading.AbandonedMutexException:
            //     线程退出时未释放互斥体,等待过程已终止。 在 Windows 98 或 Windows Millennium Edition 中不引发此异常。
            //
            //   T:System.InvalidOperationException:
            //     当前实例是另一个应用程序域中的 System.Threading.WaitHandle 的透明代理。
            public virtual bool WaitOne(TimeSpan timeout, bool exitContext);
            //
            // 摘要:
            //     阻止当前线程,直到当前 System.Threading.WaitHandle 收到信号。
            //
            // 返回结果:
            //     如果当前实例收到信号,则为 true。 如果当前实例永远收不到信号,则 System.Threading.WaitHandle.WaitOne(System.Int32,System.Boolean)
            //     永不返回。
            //
            // 异常:
            //   T:System.ObjectDisposedException:
            //     当前实例已被释放。
            //
            //   T:System.Threading.AbandonedMutexException:
            //     线程退出时未释放互斥体,等待过程已终止。 在 Windows 98 或 Windows Millennium Edition 中不引发此异常。
            //
            //   T:System.InvalidOperationException:
            //     当前实例是另一个应用程序域中的 System.Threading.WaitHandle 的透明代理。
            public virtual bool WaitOne();
            //
            // 摘要:
            //     在派生类中被重写时,释放由 System.Threading.WaitHandle 使用的非托管资源,也可以根据需要释放托管资源。
            //
            // 参数:
            //   explicitDisposing:
            //     true 表示释放托管资源和非托管资源;false 表示仅释放非托管资源。
            [SecuritySafeCritical]
            protected virtual void Dispose(bool explicitDisposing);
        }
    }
    2、
    2.返回顶部
     
    3.返回顶部
     
    4.返回顶部
     
    5.返回顶部
     
     
    6.返回顶部
     
    warn 作者:ylbtech
    出处:http://ylbtech.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    2014 10 07 ················男人感悟100(转自MOP)
    BFS和DFS优先搜索算法
    求素数算法-网摘
    DP问题各种模型的状态转移方程 (转)
    srand函数
    #include<algorithm>
    常用算法一(分治算法)
    杭电ACM题目分类
    四方定理
    五大常用算法之二:动态规划算法
  • 原文地址:https://www.cnblogs.com/storebook/p/12584241.html
Copyright © 2011-2022 走看看