Part 1 Asynchronous programming and multithreading basics 1
1. Asynchronous programming and multithreading 3
2. The compiler rewrites your code 13
3. The async and await keywords 21
4. Multithreading basics 38
5. async/await and multithreading 58
6. When to use async/await 69
7. Classic multithreading pitfalls and how to avoid them 81
Part 2 Advanced uses of async/await and multithreading 103
8. Processing a sequence of items in the background 105
9. Canceling background tasks 122
10. Await your own events 134
11. Controlling on which thread your asynchronous code runs 147
12. Exceptions and async/await 166
13. Thread-safe collections 173
14. Generating collections asynchronously/await foreach and IAsyncEnumerable 203
C# Concurrency teaches you how to write effective multithreaded and asynchronous software in C#. Practical techniques, real-world examples, and useful code samples cut through the confusion around async/await and help you write rapid, reliable, and bug-free code.
In C# Concurrency: Asynchronous and Multithreaded Programming you’ll learn how to:
In C# Concurrency Nir Dobovizki, a seasoned C# veteran with over 30 years of high-performance programming experience, shares his deep knowledge and expert techniques. Say goodbye to frustrating pitfalls and impossible-to-find bugs that slow down your applications. Nir's careful approach will teach you how to navigate these challenges with ease, allowing you to achieve lightning-fast performance like never before!
Asynchronous and multithreaded programs can perform multiple tasks simultaneously without losing speed or reliability. But getting concurrency right can challenge even experienced developers. This practical book teaches you to deliver concurrent C# apps that are lighting fast and free of the deadlocks and other synchronization issues that undermine performance and take forever to find.
C# Concurrency equips programmers with a comprehensive understanding of multithreading and asynchronous programming, focusing on the practical use of the C# async-await feature to simplify asynchronous tasks. It teaches how to avoid common pitfalls, addresses classic multithreading issues like deadlocks and race conditions, and advanced topics such as controlling thread of execution and using thread-safe collections.
For experienced C# programmers. No knowledge of asynchronous programming required.