我需要能够以任何顺序(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