2010-01-03 110 views

回答

0

还没有找到任何解决方案。改用默认的ThreadPool。

1

你能指定在RX中使用TaskFactory吗?如果是这样,您可以创建一个具有适当并发级别的TaskScheduler。目前我不明白是否有“股票”调度程序允许这样做,或者它是否被隐藏(Parallel LINQ当然提供“最大并发”选项),但这是总体规划。

当然,如果你不能改变工厂正在使用哪个任务,这没有多大帮助。

+0

如何创建新的TaskScheduler?通过继承默认的'TaskScheduler'来实现吗? – 2010-01-03 21:19:20

+0

Inherting默认的TaskScheduler很糟糕,因为几乎所有东西都是私有的;我不觉得重写整个调度程序部分。 – 2010-01-03 21:23:05

+1

@Jan:您需要做的就是覆盖MaximumConcurrencyLevel属性:http://msdn.microsoft.com/en-us/library/system.threading.tasks.taskscheduler.maximumconcurrencylevel(VS.100).aspx – 2010-01-03 21:26:57