System.Threading Namespace
.NET Framework 2.0
The System.Threading namespace provides classes and interfaces that enable multithreaded programming. In addition to classes for synchronizing thread activities and access to data ( Mutex, Monitor, Interlocked, AutoResetEvent, and so on), this namespace includes a ThreadPool class that allows you to use a pool of system-supplied threads, and a Timer class that executes callback methods on thread pool threads.
| Class | Description | |
|---|---|---|
|
AbandonedMutexException | The exception that is thrown when one thread acquires a Mutex object that another thread has abandoned by exiting without releasing it. |
|
AutoResetEvent | Notifies a waiting thread that an event has occurred. This class cannot be inherited. |
|
CompressedStack | Provides methods for setting and capturing the compressed stack on the current thread. This class cannot be inherited. |
|
EventWaitHandle | Represents a thread synchronization event. |
|
ExecutionContext | Manages the execution context for the current thread. This class cannot be inherited. |
|
HostExecutionContext | Encapsulates and propagates the host execution context across threads. |
|
HostExecutionContextManager | Provides the functionality that allows a common language runtime host to participate in the flow, or migration, of the execution context. |
|
Interlocked | Provides atomic operations for variables that are shared by multiple threads. |
|
ManualResetEvent | Notifies one or more waiting threads that an event has occurred. This class cannot be inherited. |
|
Monitor | Provides a mechanism that synchronizes access to objects. |
|
Mutex | A synchronization primitive that can also be used for interprocess synchronization. |
|
Overlapped | Provides a managed representation of a Win32 OVERLAPPED structure, including methods to transfer information from an Overlapped instance to a NativeOverlapped structure. |
|
ReaderWriterLock | Defines a lock that supports single writers and multiple readers. |
|
RegisteredWaitHandle | Represents a handle that has been registered when calling RegisterWaitForSingleObject. This class cannot be inherited. |
|
Semaphore | Limits the number of threads that can access a resource or pool of resources concurrently. |
|
SemaphoreFullException | The exception that is thrown when the System.Threading.Semaphore.Release method is called on a semaphore whose count is already at the maximum. |
|
SynchronizationContext | Provides the basic functionality for propagating a synchronization context in various synchronization models. |
|
SynchronizationLockException | The exception that is thrown when a method requires the caller to own the lock on a given Monitor, and the method is invoked by a caller that does not own that lock. |
|
Thread | Creates and controls a thread, sets its priority, and gets its status. |
|
ThreadAbortException | The exception that is thrown when a call is made to the Abort method. This class cannot be inherited. |
|
ThreadExceptionEventArgs | Provides data for the ThreadException event. |
|
ThreadInterruptedException | The exception that is thrown when a Thread is interrupted while it is in a waiting state. |
|
ThreadPool | Provides a pool of threads that can be used to post work items, process asynchronous I/O, wait on behalf of other threads, and process timers. |
|
ThreadStartException | The exception that is thrown when a failure occurs in a managed thread after the underlying operating system thread has been started, but before the thread is ready to execute user code. |
|
ThreadStateException | The exception that is thrown when a Thread is in an invalid ThreadState for the method call. |
|
Timeout | Contains a constant used to specify an infinite amount of time. This class cannot be inherited. |
|
Timer | Provides a mechanism for executing a method at specified intervals. This class cannot be inherited. |
|
WaitHandle | Encapsulates operating system–specific objects that wait for exclusive access to shared resources. |
|
WaitHandleCannotBeOpenedException | The exception that is thrown when an attempt is made to open a system mutex or semaphore that does not exist. |
| Structure | Description | |
|---|---|---|
|
AsyncFlowControl | Provides the functionality to restore the migration, or flow, of the execution context between threads. |
|
LockCookie | Defines the lock that implements single-writer/multiple-reader semantics. This is a value type. |
|
NativeOverlapped | Provides an explicit layout that is visible from unmanaged code and that will have the same layout as the Win32 OVERLAPPED structure with additional reserved fields at the end. |
| Delegate | Description | |
|---|---|---|
|
ContextCallback | Represents a method to be called within a new context. |
|
IOCompletionCallback | Receives the error code, number of bytes, and overlapped value type when an I/O operation completes on the thread pool. |
|
ParameterizedThreadStart | Represents the method that executes on a Thread. |
|
SendOrPostCallback | Represents a method to be called when a message is to be dispatched to a synchronization context. |
|
ThreadExceptionEventHandler | Represents the method that will handle the ThreadException event of an Application. |
|
ThreadStart | Represents the method that executes on a Thread. |
|
TimerCallback | Represents the method that handles calls from a Timer. |
|
WaitCallback | Represents a callback method to be executed by a thread pool thread. |
|
WaitOrTimerCallback | Represents a method to be called when a WaitHandle is signaled or times out. |
| Enumeration | Description | |
|---|---|---|
|
ApartmentState | Specifies the apartment state of a Thread. |
|
EventResetMode | Indicates whether an EventWaitHandle is reset automatically or manually after receiving a signal. |
|
ThreadPriority | Specifies the scheduling priority of a Thread. |
|
ThreadState | Specifies the execution states of a Thread. |