列表是< T>或HashSet< T>或者其他任何内置于线程安全的内容仅用于添加?
我的问题类似于Threadsafe and generic arraylist?,但我只是寻求安全来覆盖添加到此列表的线程,而不是删除或从中读取.
解决方法
.NET 4.0你可以使用
BlockingCollection<T>
,但仍然设计为所有操作的线程安全,而不仅仅是添加.
通常,设计一种数据结构以保证某些操作对于并发安全是不常见的,而另一些则不是这样.如果您担心访问集合进行阅读时会产生开销,那么在您开始寻找专门的集合来处理之前,您应该先进行一些基准测试.