我似乎找不到支持简单 Remove() 函数的 .NET 线程安全/并发收集,我可以在其中删除特定项目或传入谓词以基于该函数删除项目。我试过:
BlockingCollection<T>
ConcurrentQueue<T>
ConcurrentStack<T>
ConcurrentBag<T>
有谁知道支持这种行为的集合,还是我必须创建自己的集合?
我希望能够从线程安全队列中获取下一项而不删除它,稍后如果满足特定条件,则继续删除它。
最佳答案
你试过了吗ConcurrentDictionary
?它有一个 TryRemove
方法,所以如果您将键视为谓词,那么您将删除正确的项目。
关于c# - 支持移除项的线程安全集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9506662/