c# - foreach 是否从 C# BlockingCollection 中删除?

标签 c# foreach behavior blockingqueue blockingcollection

有谁知道,当迭代 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/

相关文章:

c# - Mysqldump 在查询内不起作用

backbone.js - 将行为附加到 meteor 集合的最佳方法是什么?

c# - 如何将 "Forward"cookie 发送到另一个页面

c# - ASP.NET 和 C# - 列表框中的两个值?

c++ - 为什么::boost::tie 不能与 BOOST_FOREACH 一起工作?

c# - 嵌套的 ForEach 循环到 Linq

javascript - JS/Jquery - 如果输入有任何数组名称,则返回关联值

Java BufferedInputStream 行为

android - 如何以编程方式删除我的 NestedScrollView 的布局行为?

c# - 将设置写入注册表,由 x64 和 x86 应用程序共享(绕过注册表重定向)