4

http://msdn.microsoft.com/en-us/library/dd267312.aspx上的 MSDN 评论指出......

“BlockingCollection 的默认集合类型是 ConcurrentQueue”

这是否意味着当我在集合上运行“GetConsumingEnumerable()”时,拉出的项目正在从队列中出列,使用后将被标记为 GC?

换句话说......在下面的片段中,

foreach (var item in collection.GetConsumingEnumerable())
        {
            //do something with item
        }

循环迭代后项目会发生什么?

4

1 回答 1

5

这些项目将从集合中删除,如果不存在对它们的其他引用,则它们将有资格被收集。

GetConsumingEnumerable的文档中:

返回值
类型:System.Collections.Generic.IEnumerable<T>
IEnumerable<T>集合中删除并返回项目的 。

(我的重点)

于 2013-06-24T16:02:59.270 回答