c#中是否存在线程安全且通用的IList <t> </t>

时间:2010-07-15 20:27:03

标签: c# .net generics parallel-processing thread-safety

List<T>HashSet<T>或其他任何内置于线程安全的内容仅供添加?

我的问题类似于Threadsafe and generic arraylist?,但我只是想寻找安全措施,以便将此列表添加到线程中,而不是删除或从中读取。

2 个答案:

答案 0 :(得分:9)

System.Collections.Concurrent.BlockingCollection<T>

Link.

答案 1 :(得分:7)

.NET 4.0你可以使用BlockingCollection<T>,但这仍然是为所有操作设计的线程安全,而不仅仅是添加。

通常,设计一种数据结构以保证某些操作对于并发安全是不常见的,而另一些则不是这样。如果您担心在访问集合进行阅读时会产生开销,那么在您开始寻找专门的集合来处理之前,您应该进行一些基准测试。