Learn threads, tasks, async/await, synchronization, and debugging of multithreaded applications in .NET