Concurrency in C# Cookbook: Asynchronous, Parallel, and Multithreaded Programming

Front Cover
"O'Reilly Media, Inc.", Aug 20, 2019 - Computers - 254 pages

If you’re one of many developers still uncertain about concurrent and multithreaded development, this practical cookbook will change your mind. With more than 85 code-rich recipes in this updated second edition, author Stephen Cleary demonstrates parallel processing and asynchronous programming techniques using libraries and language features in .NET and C# 8.0.

Concurrency is now more common in responsive and scalable application development, but it’s still extremely difficult to code. The detailed solutions in this cookbook show you how modern tools raise the level of abstraction, making concurrency much easier than before. Complete with ready-to-use code and discussions about how and why solutions work, these recipes help you:

  • Get up to speed on concurrency and async and parallel programming
  • Use async and await for asynchronous operations
  • Enhance your code with asynchronous streams
  • Explore parallel programming with .NET’s Task Parallel Library
  • Create dataflow pipelines with .NET’s TPL Dataflow library
  • Understand the capabilities that System.Reactive builds on top of LINQ
  • Utilize threadsafe and immutable collections
  • Learn how to conduct unit testing with concurrent code
  • Make the thread pool work for you
  • Enable clean, cooperative cancellation
  • Examine scenarios for combining concurrent approaches
  • Dive into asynchronous-friendly object-oriented programming
  • Recognize and write adapters for code using older asynchronous styles
 

What people are saying - Write a review

We haven't found any reviews in the usual places.

Contents

An Overview
1
Chapter 2 Async Basics
19
Chapter 3 Asynchronous Streams
41
Chapter 4 Parallel Basics
55
Chapter 5 Dataflow Basics
65
Chapter 6 SystemReactive Basics
75
Chapter 7 Testing
87
Chapter 8 Interop
101
Chapter 11 FunctionalFriendly OOP
161
Chapter 12 Synchronization
177
Chapter 13 Scheduling
191
Chapter 14 Scenarios
197
Appendix A Legacy Platform Support
215
Appendix B Recognizing and Interpreting Asynchronous Patterns
219
Index
227
About the Author
235

Chapter 9 Collections
117
Chapter 10 Cancellation
145

Other editions - View all

Common terms and phrases

About the author (2019)

Stephen Cleary is a developer with extensive experience ranging from ARM firmware to Azure. He has contributed to open source from the very beginning, starting with the Boost C++ libraries, and has released several libraries and utilities of his own.

Bibliographic information