GetConsumingEnumerable

GetConsumingEnumerable

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

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

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

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

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

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

最佳答案

这些项目将从集合中删除,如果不存在对它们的其他引用,它们将符合收集条件。

GetConsumingEnumerable 的文档中:



(我的重点)

关于c# - GetConsumingEnumerable 是否真的从 BlockingCollection 中删除了一个项目?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17279828/

10-13 02:43