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

Mas*_*low 6 .net c# generics parallel-processing thread-safety

是否List<T>HashSet<T>其他任何内置的线程安全仅用于添加?

我的问题类似于Threadsafe和泛型arraylist?但我只是寻求安全,以涵盖添加到此列表线程,而不是删除或从中读取.

Mau*_*Mau 9

System.Collections.Concurrent.BlockingCollection<T>
Run Code Online (Sandbox Code Playgroud)

链接.


LBu*_*kin 7

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

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