由于微软可能杀死了并行扩展CTP的所有下载链接,我完全失去了。反应式扩展/并行扩展中的最大线程数
我想指定在特定时间运行的任务的最大数量,因为我想要比处理器更多的线程。任何线索如何在RX中做到这一点?
由于微软可能杀死了并行扩展CTP的所有下载链接,我完全失去了。反应式扩展/并行扩展中的最大线程数
我想指定在特定时间运行的任务的最大数量,因为我想要比处理器更多的线程。任何线索如何在RX中做到这一点?
还没有找到任何解决方案。改用默认的ThreadPool。
你能指定在RX中使用TaskFactory
吗?如果是这样,您可以创建一个具有适当并发级别的TaskScheduler
。目前我不明白是否有“股票”调度程序允许这样做,或者它是否被隐藏(Parallel LINQ当然提供“最大并发”选项),但这是总体规划。
当然,如果你不能改变工厂正在使用哪个任务,这没有多大帮助。
如何创建新的TaskScheduler?通过继承默认的'TaskScheduler'来实现吗? – 2010-01-03 21:19:20
Inherting默认的TaskScheduler很糟糕,因为几乎所有东西都是私有的;我不觉得重写整个调度程序部分。 – 2010-01-03 21:23:05
@Jan:您需要做的就是覆盖MaximumConcurrencyLevel属性:http://msdn.microsoft.com/en-us/library/system.threading.tasks.taskscheduler.maximumconcurrencylevel(VS.100).aspx – 2010-01-03 21:26:57