Supercharge your applications with the ultimate guide to asynchronous and multithreaded programming in C#!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:Take full advantage of async/awaitWrite bug-free multithreaded code every timeCreate multithreaded code that delivers real performance improvementsGrok C# and .NET multithreading and asynchronous primitivesKnow when to use concurrency techniques—and when not to use them!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!About the technologyAsynchronous 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.About the bookC# 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.What's inside.NET multithreading and asynchronous primitivesWhen to use concurrency techniques—and when not to!Confidently use async/awaitAbout the readerFor experienced C# programmers. No knowledge of asynchro- nous programming required.About the authorNir Dobovizki is a senior software architect and consultant who has worked on concurrent and asynchronous systems since the late 90s. Table of ContentsPart 11 Asynchronous programming and multithreading2 The compiler rewrites your code3 The async and await keywords4 Multithreading basics5 async/await and multithreading6 When to use async/await7 Classic multithreading pitfalls and how to avoid themPart 28 Processing a sequence of items in the background9 Canceling background tasks10 Await your own events11 Controlling on which thread your asynchronous code runs12 Exceptions and async/await13 Thread-safe collections14 Generating collections asynchronously/await foreach and IAsyncEnumerable