Create robust and scalable applications along with responsive UI using concurrency and the multi-threading infrastructure in .NET and C#
If you are a C# developer who wants to develop modern applications in C# and wants to overcome problems by using asynchronous APIs and standard patterns, then this book is ideal for you. Reasonable development knowledge, an understanding of core elements and applications related to the .Net platform, and also the fundamentals of concurrency is assumed.
Starting with the traditional approach to concurrency, you will learn how to write multithreaded concurrent programs and compose ways that won’t require locking. You will explore the concepts of parallelism granularity, and fine-grained and coarse-grained parallel tasks by choosing a concurrent program structure and parallelizing the workload optimally. You will also learn how to use task parallel library, cancellations, timeouts, and how to handle errors. You will know how to choose the appropriate data structure for a specific parallel algorithm to achieve scalability and performance. Further, you’ll learn about server scalability, asynchronous I/O, and thread pools, and write responsive traditional Windows and Windows Store applications.
By the end of the book, you will be able to diagnose and resolve typical problems that could happen in multithreaded applications.
An easy-to-follow, example-based guide that will walk you through the core principles of concurrency and multithreading using C#.
Chapter 1. Traditional Concurrency
Chapter 2. Lock-Free Concurrency
Chapter 3. Understanding Parallelism Granularity
Chapter 4. Task Parallel Library in Depth
Chapter 5. C# Language Support for Asynchrony
Chapter 6. Using Concurrent Data Structures
Chapter 7. Leveraging Parallel Patterns
Chapter 8. Server-side Asynchrony
Chapter 9. Concurrency in the User Interface
Chapter 10. Troubleshooting Parallel Programs