This book aims to address one of the fundamental units of .NET programming - the thread. A strong understanding of the role threads play in program execution, how multiple threads can interact in order to make efficient programs, and the pitfalls to beware of when developing multithreaded applications, are all core to a developer's ability to develop effective VB.NET programs. This book will cover how .NET applications are executed, the lifecycle of a thread in .NET, how the .NET framework uses threads, how threads work in an event-driven environment, how we can create threads, how we can avoid race conditions and deadlocks, how the activity of multiple threads can be synchronized, and how to debug multithreaded applications.