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的范围……你应该尝试找一个能够详细解释它的资源。 顺便说一句,你是如何创建任务的?