System.Collections.Concurrent

需要注意的是:线程安全并不是没有代价的,比起System.Collenctions和System.Collenctions.Generic命名空间中的列表、集合和数组来说,并发集合会有更大的开销。因此,应该只在需要从多个任务中并发访问集合的时候才使用并发几个,在串行代码中使用并发集合是没有意义的,因为它们会增加无谓的开销

ConcurrentBag

提供对象的线程安全的无序集合

BlockingCollection

与经典的阻塞队列数据结构类似,能够适用于多个任务添加和删除数据,提供阻塞和限界能力

ConcurrentDictionary

提供可有多个线程同时访问的键值对的线程安全集合

ConcurrentQueue

提供线程安全的先进先出集合

ConcurrentStack

提供线程安全的后进先出集合