【发布时间】:2014-06-10 06:02:29
【问题描述】:
有没有办法获取 OmniThreadLibrary 的 TOmniBlockingCollection 的大小(即元素个数)?
我检查了代码,我的初步结论是否定的,但我不确定。
【问题讨论】:
-
你会如何处理这些信息?
-
@DavidHeffernan,我产生了多个线程(默认为 5 个)来处理
TOmniBlockingCollection中的元素,但有时集合的元素少于 5 个,因此我需要该大小信息以避免产生不必要的线程。无论如何,通过在将元素放入TOmniBlockingCollection之前确定元素的大小,我已经绕过了这个限制。 -
为什么不记得放了多少东西?
-
您最好在 TOmniBlockingCollection 上使用 Parallel.ForEach 来创建处理线程。 Gabr 有一个很好的例子 (thedelphigeek.com/2010/02/…)。如果您真的必须尝试从集合中获取计数,那么我能想到的唯一方法是使用枚举器“迭代”列表,然后将它们添加到新集合中。
-
@Graymatter 那你可能会超额订阅