有谁知道,当迭代 C# BlockingCollection<> 时,元素是否从集合中获取,例如 BlockingCollection.Take() 的方式相同?
BlockingCollection<int> q = new BlockingCollection<int>();
[...]
foreach(int i in q)
{
//does q still contain i?
}
谢谢
编辑:当然,我指的是 BlockingCollection,但出于某种原因,我想到了 BlockingQueue 并使用了它。
最佳答案
BlockingCollection<T>
枚举器不会从集合中删除项目。
但是,枚举器从 BlockingCollection<T>.GetConsumingEnumerable()
返回确实从集合中删除项目。
关于c# - foreach 是否从 C# BlockingCollection 中删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20422525/