List<T>
或HashSet<T>
或其他任何内置于线程安全的内容仅供添加?
我的问题类似于Threadsafe and generic arraylist?,但我只是想寻找安全措施,以便将此列表添加到线程中,而不是删除或从中读取。
答案 0 :(得分:9)
System.Collections.Concurrent.BlockingCollection<T>
答案 1 :(得分:7)
.NET 4.0你可以使用BlockingCollection<T>
,但这仍然是为所有操作设计的线程安全,而不仅仅是添加。
通常,设计一种数据结构以保证某些操作对于并发安全是不常见的,而另一些则不是这样。如果您担心在访问集合进行阅读时会产生开销,那么在您开始寻找专门的集合来处理之前,您应该进行一些基准测试。