What this book covers
Chapter 1, Threading Basics, introduces the basic operations with threads in C#. It explains what a thread is, the pros and cons of using threads, and other important thread aspects.
Chapter 2, Thread Synchronization, describes thread interaction details. You will learn why we need to coordinate threads together and the different ways of organizing thread coordination.
Chapter 3, Using a Thread Pool, explains the thread pool concept. It shows how to use a thread pool, how to work with asynchronous operations, and the good and bad practices of using a thread pool.
Chapter 4, Using the Task Parallel Library, is a deep dive into the Task Parallel Library (TPL) framework. This chapter outlines every important aspect of TPL, including task combination, exception management, and operation cancelation.
Chapter 5, Using C# 6.0, explains in detail the recently introduced C# feature—asynchronous methods. You will find out what the async
and await
keywords mean, how to use them in different scenarios, and how await
works under the hood.
Chapter 6, Using Concurrent Collections, describes the standard data structures for parallel algorithms included in .NET Framework. It goes through sample programming scenarios for each data structure.
Chapter 7, Using PLINQ, is a deep dive into the Parallel LINQ infrastructure. The chapter describes task and data parallelism, parallelizing a LINQ query, tweaking parallelism options, partitioning a query, and aggregating the parallel query result.
Chapter 8, Reactive Extensions, explains how and when to use the Reactive Extensions framework. You will learn how to compose events and how to perform a LINQ query against an event sequence.
Chapter 9, Using Asynchronous I/O, covers in detail the asynchronous I/O process, including files, networks, and database scenarios.
Chapter 10, Parallel Programming Patterns, outlines the solutions to common parallel programming problems.
Chapter 11, There's More, covers the aspects of programming asynchronous applications for Windows 10, OS X, and Linux. You will learn how to work with Windows 10 asynchronous APIs and how to perform the background work in Universal Windows applications. Also, you will get familiar with cross-platform .NET development tools and components.