For anybody who wants to gain some basic and intermediate knowledge on multithreading in C#.NET, John Skeet’s article is a must read.
The article displays the in-depth knowledge of the author on this topic. The author has painstakingly listed down the different synchronization objects available in C#. He also lists the pitfalls that one might get into while programming using threads. That explains why the article is so lengthy.
This article has everything one needs to know about multi-threading in the .NET environment. Bookmark it, you know you will need it one day.