Threading Pattern Library
To raise the level of abstraction at which .NET developers address multithreading, and therefore reduce source code complexity.
.NET Framework 4.0, 4.5
During the early days of computing, programmers were so busy managing memory and CPU registers that they could barely focus on business features.
Generations of compilers raised the level of abstraction so well that today, memory management is no longer a preoccupation.
Now you can repeat this success story with multithreading.
Instead of using locks and other low-level synchronization mechanisms, you can work at a more conceptual level, follow design patterns that are known to work and rely on the compiler to generate low-level code and validate design rules.
There's no need to switch to another language. With the Threading Pattern Library, you can follow multithreading best practices in C# or Visual Basic apps.
Throws an exception is an object is accessed from a different thread than the one that instantiated it.
Dispatch to UI thread
Simplify thread dispatching, add background and UI thread processing.