MSDN在http://msdn.microsoft.com/en-us/library/dd267312.aspx的评论说......
“BlockingCollection的默认集合类型是ConcurrentQueue”
这是否意味着当我在集合上运行“GetConsumingEnumerable()”时,拉出的项目是从队列中出队的,并且在使用之后将被标记为GC?
换句话说......在下面的代码片段中,
foreach (var item in collection.GetConsumingEnumerable())
{
//do something with item
}
循环迭代后项目会发生什么?
答案 0 :(得分:5)
这些项目将从集合中删除,如果没有其他参考资料,则他们将有资格领取。
来自GetConsumingEnumerable的文档:
返回值
输入:System.Collections.Generic.IEnumerable<T>
IEnumerable<T>
,用于删除和返回集合中的项目。
(我的重点)