With an understanding of the .NET framework, stable and robust multithreaded applications can be developed with minimal effort. Covering the topics related to multithreaded development, this book not only focuses on how a task is performed but also on the more important question of why these tasks are performed. The strengths and weaknesses of each approach to multithreading are analyzed so that programmers and developers can choose the appropriate approach based on their particular constraints. Complete coverage of multithreading development using the .NET framework in both Visual Basic .NET and C# is provided in addition to detailed analyses of threads, delegates, asynchronous execution, threadpools, and locks.