C# 各種常用集合類型的線程安全版本


在C#里面我們常用各種集合,數組,List,Dictionary,Stack等,然而這些集合都是非線程安全的,當多線程同時讀寫這些集合的時候,有可能造成里面的數據混亂,為此微軟從Net4.0開始專門提供了另一套線程安全的版本(放在System.Collections.Concurrent命名空間).

都有這些:

當有多個線程並發訪問集合時,應使用這些類代替 System.Collections 和 System.Collections.Generic 命名空間中的對應類型。

 

  說明
公共類 BlockingCollection<T> 為實現 IProducerConsumerCollection<T> 的線程安全集合提供阻塞和限制功能。
公共類 ConcurrentBag<T> 表示對象的線程安全的無序集合。
公共類 ConcurrentDictionary<TKey, TValue> 表示可由多個線程同時訪問的鍵值對的線程安全集合。
公共類 ConcurrentQueue<T> 表示線程安全的先進先出 (FIFO) 集合。
公共類 ConcurrentStack<T> 表示線程安全的后進先出 (LIFO) 集合。
公共類 OrderablePartitioner<TSource> 表示將一個可排序數據源拆分成多個分區的特定方式。
公共類 Partitioner 提供針對數組、列表和可枚舉項的常見分區策略。
公共類 Partitioner<TSource> 表示將一個數據源拆分成多個分區的特定方式。
  接口 說明
公共接口 IProducerConsumerCollection<T> 定義供制造者/使用者用來操作線程安全集合的方法。此接口提供一個統一的表示(為生產者/消費者集合),從而更高級別抽象如System.Collections.Concurrent.BlockingCollection<T> 可以使用集合作為基礎的存儲機制。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM