Managed threading basics

The first five topics of this section are designed to help you determine when to use managed threading and to explain some basic features. For information on classes that provide additional features, see Threading Objects and Features and Overview of Synchronization Primitives.

The rest of the topics in this section cover advanced topics, including the interaction of managed threading with the Windows operating system.


In the .NET Framework 4, the Task Parallel Library and PLINQ provide APIs for task and data parallelism in multi-threaded programs. For more information, see Parallel Programming.

In this section

Threads and Threading
Discusses the advantages and drawbacks of multiple threads, and outlines the scenarios in which you might create threads or use thread pool threads.

Exceptions in Managed Threads
Describes the behavior of unhandled exceptions in threads for different versions of the .NET Framework, in particular the situations in which they result in termination of the application.

Synchronizing Data for Multithreading
Describes strategies for synchronizing data in classes that will be used with multiple threads.

Foreground and Background Threads
Explains the differences between foreground and background threads.

Managed and Unmanaged Threading in Windows
Discusses the relationship between managed and unmanaged threading, lists managed equivalents for Windows threading APIs, and discusses the interaction of COM apartments and managed threads.

Thread Local Storage: Thread-Relative Static Fields and Data Slots
Describes thread-relative storage mechanisms.


Provides reference documentation for the Thread class, which represents a managed thread, whether it came from unmanaged code or was created in a managed application.

Provides a safe way to implement multithreading in conjunction with user-interface objects.

Overview of Synchronization Primitives
Describes the managed classes used to synchronize the activities of multiple threads.

Managed Threading Best Practices
Describes common problems with multithreading and strategies for avoiding problems.

Parallel Programming
Describes the Task Parallel Library and PLINQ, which greatly simplify the work of creating asynchronous and multi-threaded .NET Framework applications.