我在这里使用什么并发收集?

时间:2013-01-10 12:04:03

标签: c# collections .net-4.5

我需要能够以任何顺序(foreach)枚举集合,并从任何线程添加/删除项目。

不需要通过索引直接访问。

我使用什么系列?只是一个清单?如果是这样,我是否只需要锁定添加/删除或者我是否也必须锁定foreach?

我希望在任何线程上都可以使用以下操作。

foreach (var item in myCollection)
{
    // myCollection can be returned in any order.
}

myCollection.Add(item)

var success = myCollection.Remove(item) // returns false if the item does not exist in myCollection

1 个答案:

答案 0 :(得分:4)

您可以将ConcurrentBag用于线程安全的集合,Represents a thread-safe, unordered collection of objects,自.NET 4.0

以来可以使用{{1}}

注意:我无法提供更多信息,因为我不知道您将使用它的上下文。提供更多信息以获得更深入的答案。