【问题标题】:Is there a way to get the size of TOmniBlockingCollection of OmniThreadLibrary?有没有办法获取 OmniThreadLibrary 的 TOmniBlockingCollection 的大小?
【发布时间】:2014-06-10 06:02:29
【问题描述】:

有没有办法获取 OmniThreadLibrary 的 TOmniBlockingCollection 的大小(即元素个数)?

我检查了代码,我的初步结论是否定的,但我不确定。

【问题讨论】:

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

标签: delphi omnithreadlibrary


【解决方案1】:

有没有办法获取 OmniThreadLibrary 的 TOmniBlockingCollection 的大小(即元素个数)?

没有。

【讨论】:

    猜你喜欢
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多