WaitHandle | CF 1.0, ECMA 1.0, marshal by reference, disposable |
System.Threading (mscorlib.dll) | abstract class |
This class encapsulates much of the
logic for
dealing with synchronization handles, which allow much more
fine-grained synchronization control than simple thread locking. Once
you have references to one or more WaitHandle
subclasses, use the static WaitOne( ) or
WaitAny( ) methods to obtain a lock on any single
handle or all of the handles, respectively. The WaitOne(
) instance method acquires the lock for a specific
WaitHandle. If a thread blocks and cannot obtain
the necessary locks, it enters the
ThreadState.WaitSleepJoin state until the locks
can be obtained.
public abstract class WaitHandle : MarshalByRefObject, IDisposable {
// Public Constructors
public WaitHandle( );
// Public Static Fields
public const int WaitTimeout;
// =258
// Protected Static Fields
protected static readonly IntPtr InvalidHandle;
// =-1
// Public Instance Properties
public virtual IntPtr Handle{set; get; }
// Public Static Methods
public static bool WaitAll(WaitHandle[ ] waitHandles);
public static bool WaitAll(WaitHandle[ ] waitHandles, int millisecondsTimeout, bool exitContext);
public static bool WaitAll(WaitHandle[ ] waitHandles, TimeSpan timeout, bool exitContext);
public static int WaitAny(WaitHandle[ ] waitHandles);
public static int WaitAny(WaitHandle[ ] waitHandles, int millisecondsTimeout, bool exitContext);
public static int WaitAny(WaitHandle[ ] waitHandles, TimeSpan timeout, bool exitContext);
// Public Instance Methods
public virtual void Close( );
public virtual bool WaitOne( );
public virtual bool WaitOne(int millisecondsTimeout, bool exitContext);
public virtual bool WaitOne(TimeSpan timeout, bool exitContext);
// Protected Instance Methods
protected virtual void Dispose(bool explicitDisposing);
protected override void Finalize( );
// overrides object
}
Hierarchy
System.Object
System.MarshalByRefObject
WaitHandle(System.IDisposable)
Subclasses
AutoResetEvent,
ManualResetEvent, Mutex
Returned By
System.IAsyncResult.AsyncWaitHandle,
System.IO.Stream.CreateWaitHandle( )
Passed To
RegisteredWaitHandle.Unregister( ),
ThreadPool.{RegisterWaitForSingleObject( ),
UnsafeRegisterWaitForSingleObject( )},
Timer.Dispose( )
|