Watch the Video
Or watch it directly on YouTube: Click here
Video Description
Stop using new Thread(). Modern C# uses Tasks. They're lighter, smarter, and the foundation for async/await. Time to do multithreading the right way.
What you'll learn:
- Why Tasks beat raw Threads
- The thread pool - reuse over recreation
- Task.Run for CPU-bound work
- Task for returning values
- await vs Wait() vs Result
- Task.WhenAll - parallel execution
- Task.WhenAny - racing operations
- Exception handling in Tasks
- AggregateException for multiple failures
- Fire-and-forget dangers
- async void lambda trap
- CPU-bound vs I/O-bound work
Key insights:
- Threads are expensive, Tasks are cheap
- Thread pool maintains reusable threads
- await releases the thread, Wait() blocks it
- Always await or observe your Tasks
- Fire-and-forget loses exceptions silently
- async void should only be for event handlers
- Task.Run for CPU work, await for I/O work
- WhenAny + Delay = timeout pattern
We'll build:
- Parallel file downloader
- Timeout wrapper for any operation
- Progress reporting pattern
- Multi-task error handling
Next Video: Async/Await Basics
Tasks finally make sense? Smash that like button! Subscribe and enable notifications - next up we tackle async/await! Task.Run or await directly? Tell me your approach in the comments!
Chapters
- 0:00 Tasks - Modern Multithreading
- 1:09 The Thread Pool Changes Everything
- 1:37 Thread vs Task Creation
- 1:57 Your First Task
- 2:36 Tasks That Return Values
- 3:22 Waiting for Tasks
- 4:07 Running Multiple Tasks
- 4:50 Task.WhenAny - First One Wins
- 5:27 Exception Handling in Tasks
- 6:12 AggregateException - Multiple Failures
- 6:56 Don't Fire and Forget
- 7:54 Async Lambdas Trap
- 8:17 When To Use Task.Run
- 9:17 CPU-Bound vs I/O-Bound
- 10:50 Practical Pattern: Timeout
- 11:27 Practical Pattern: Progress Reporting
- 12:09 Q: Common Task Questions
- 13:02 Key Takeaways
- 13:56 Practice Challenge
Video Info
- Duration: 15:21
- Published: December 16, 2025