【问题标题】:Max number of threads in Reactive Extensions / Parallel Extensions反应式扩展/并行扩展中的最大线程数
【发布时间】:2020-05-24 02:03:44
【问题描述】:

由于 Microsoft 可能会终止所有指向 Parallel Extensions CTP 的下载链接,我完全迷失了。

我想指定在某个时间运行的最大任务数,因为我需要比处理器更多的线程。任何线索如何在 RX 中执行此操作?

【问题讨论】:

    标签: c# parallel-processing system.reactive


    【解决方案1】:

    您能否指定 RX 中使用的TaskFactory?如果是这样,您可以使用具有适当并发级别的TaskScheduler 创建一个。目前我不清楚是否有“库存”调度程序允许这样做,或者它是否被隐藏起来(Parallel LINQ 当然提供“最大并发”选项),但这是一般计划。

    当然,如果你不能改变正在使用的任务工厂,这也无济于事。

    【讨论】:

    • 我怎样才能创建一个新的TaskScheduler?通过继承默认的TaskScheduler来实现?
    • 继承默认 TaskScheduler 很糟糕,因为几乎所有内容都是私有的;而且我不想重写整个调度程序部分。
    • @Jan:您需要做的就是覆盖 MaximumConcurrencyLevel 属性:msdn.microsoft.com/en-us/library/…
    • 你不能在 .Net 3.5 中,你不得不覆盖很多你不能重定向到基类的排队的东西,因为它对继承的类是隐藏的。
    【解决方案2】:

    我改用默认的ThreadPool

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-10
      相关资源
      最近更新 更多