快速插入容器

时间:2011-09-02 15:36:39

标签: c# .net-4.0 thread-safety

我需要一个容器,其中insert是快速线程安全的,因为我打算在Parallel.for_each实例中使用它。

偶尔,我会扫描所述容器并删除包含的每个项目。

鉴于这些成本计算,最佳选择是什么?

由于

4 个答案:

答案 0 :(得分:8)

您可以使用ConcurrentBag<T>。基本上System.Collections.Concurrent命名空间值得检查。如果你有唯一的密钥,ConcurrentDictionary<TKey, TValue>将是一个很好的选择,因为它可以让你快速访问给定密钥的元素。

答案 1 :(得分:4)

.NET 4.0中有许多并发集合:字典,队列等。请参阅http://msdn.microsoft.com/en-us/library/dd997305.aspx

答案 2 :(得分:1)

尝试ConcurrentBag - 它是线程安全且非常快,因为大多数操作都是无锁实现的...还有ConcurrentDictionary etc.因此我不确定您确切需要哪些功能。

答案 3 :(得分:0)

链接列表。这有快速插入,但我不确定.NET中是否存在线程安全版本