我在这里使用什么并发集合

本文关键字:并发 集合 什么 在这里 | 更新日期: 2023-09-27 17:51:09

我需要能够枚举集合在任何顺序(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

我在这里使用什么并发集合

你应该使用ConcurrentBag的线程安全集合,其中Represents a thread-safe, unordered collection of objects,这是可用的自.NET 4.0

注意:我不能给出更多的信息,因为我不知道你要在什么上下文中使用它。提供更多信息以获得更深入的答案。