Advanced Threading in C#
2h 9mIntermediate2018-04-02
Authors

Chander Dhall
Microsoft MVP, Consultant
Course details
Learn how to write C# applications that perform multiple tasks concurrently-aka multithreaded applications. Programs that use multithreading are more responsive to user input because the user interface stays active as processor-intensive tasks execute on separate threads. Multithreading is also useful when you create scalable applications because you can add threads as the workload increases. In this course, Microsoft MVP Chander Dhall reviews the basics of threading and signaling, and then shows how to use the popular .NET library for parallel execution, TPL; the query syntax PLINQ; and the recommended asynchronous programming pattern, TAP. By the end of the course, he shows how to turn sequential code into a multithreaded application that runs five times faster than before.
Learning objectives
Thread safety and affinity
Signaling
Task Parallel Library (TPL) basics
PLINQ introduction
Task-based Asynchronous Pattern (TAP)
Learning objectives
Thread safety and affinity
Signaling
Task Parallel Library (TPL) basics
PLINQ introduction
Task-based Asynchronous Pattern (TAP)
Skills covered
C#PersonaProgramming LanguagesMicrosoftSoftware Development
Concepts
0. Introduction
- 01 - Welcome
- 02 - What you should know
1. Signaling and Thread Concepts
- 03 - Thread safety
- 04 - Thread affinity
- 05 - Signaling - AutoResetEvent
- 06 - Two-way signaling
- 07 - Signaling - ManualResetEvent
- 08 - Signaling - Countdown
2. Task Parallel Library (TPL)
- 09 - TPL introduction
- 10 - TPL demo
- 11 - Parallel vs. normal execution
- 12 - Parallel.For with thread local
- 13 - Continuation with state
- 14 - TaskCompletionSource
3. PLINQ
- 15 - PLINQ introduction
- 16 - PLINQ demo
- 17 - Degree of parallelism
- 18 - Concurrency bag
- 19 - Merge options
4. Task Asynchronous Pattern (TAP)
- 20 - TAP introduction
- 21 - TAP demo
Conclusion
- 22 - Next steps
Related courses
- Parallel and Concurrent Programming with C++ Part 1
- Java: Advanced Concepts for High-Performance Development
- Complete Guide to Parallel and Concurrent Programming in Python
- Advanced Java Programming
- Parallel and Concurrent Programming with Java 1
- Python Parallel and Concurrent Programming Part 1
- JavaScript: Under the Hood
- Treating Go as an Object-Oriented Language