Threading objects and features

Along with the System.Threading.Thread class, .NET provides a number of classes that help you develop multithreaded applications. The following articles provide overview of those classes:

Title Description
The managed thread pool Describes the System.Threading.ThreadPool class, which provides a pool of worker threads that are managed by .NET.
Timers Describes timers that can be used in a multithreaded environment.
Overview of synchronization primitives Describes classes that can be used to synchronize access to data or control thread interaction.
EventWaitHandle, AutoResetEvent, CountdownEvent, ManualResetEvent Describes managed event wait handles, which are used to synchronize thread activities by signaling and waiting for signals.
Mutexes Describes how to use a System.Threading.Mutex to synchronize access to an object or to build your own synchronization mechanisms.
Interlocked operations Describes the System.Threading.Interlocked class, which provides atomic operations for variables that are shared by multiple threads.
Reader-Writer Locks Describes the System.Threading.ReaderWriterLockSlim class, which provides single-writer/multiple-reader semantics.
Semaphore and SemaphoreSlim Describes the System.Threading.Semaphore class and explains how to use it to control access to limited resources.
Barrier Describes the System.Threading.Barrier class that implements the barrier pattern for coordination of threads in phased operations.
SpinLock Describes the System.Threading.SpinLock class, which is a lightweight alternative to the System.Threading.Monitor class for certain low-level scenarios.
SpinWait Describes the System.Threading.SpinWait class, which is a low-level synchronization primitive that performs busy spinning prior to initiating a kernel-based wait.

See also