GetConsumingEnumerable实际上从BlockingCollection中删除了一个项吗



MSDN在http://msdn.microsoft.com/en-us/library/dd267312.aspx声明。。。

"BlockingCollection的默认集合类型是ConcurrentQueue"

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

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

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

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

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

来自GetConsumingEnumerable:的文档

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

(我的重点)

相关内容

最新更新