Chapter 6. Using Concurrent Data Structures

Choosing an appropriate data structure for your concurrent algorithm is a crucial step. We have already learned from the previous chapters that it is not usually possible to use just any .NET object as a shared data in a multithreaded program. We can assume that most of the common types in .NET are implemented in such a way that their static members are thread-safe, while their instance members are not. However, only those objects that are specifically designed to be thread-safe can be used as they are in a multithreaded environment.

Therefore, if we need multiple threads to add some item to a collection, we cannot just call the Add method of a shared instance of the List<T> type. It will lead to unpredictable ...

Get Mastering C# Concurrency now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.