TPL – 如何强制TPL使用固定的#个线程? 不低于

如何强制TPL使用固定数量的线程? 我知道MaxDegreeOfParallelism可用于设置上限,但我希望上限等于下限。 这可能吗? 怎么样?

因为我知道有人会问=)是的,我确定我想这样做,是的,这对我的scneario来说是最佳的。 =)

编辑
该解决方案需要自定义分区程序以及自定义TaskScheduler http://social.msdn.microsoft.com/Forums/en-US/parallelextensions/thread/002ff888-6e13-4d7e-a234-1632e8a1f551

如果确实需要,可以创建自己的TaskScheduler ,但使用TaskCreationOptions.LongRunning可能是最好的方法。

如何:创建限制并发度的任务计划程序

您是否在创建任务时尝试使用TaskCreationOptions.LongRunning ? 这只是一个暗示,但我相信它可能会有所帮助:

指定任务将是长时间运行的粗粒度操作。 它向TaskScheduler提供了一个提示,即可以保证超额订阅。

当然,这可能会超出 MaxDegreeOfParallelism的范围……你应该尝试找一个能够详细解释它的资源。 顺便说一句,你是如何创建任务的?