TPL - How can I force TPL to use fixed # of threads? not less

后端 未结 2 2036
一整个雨季
一整个雨季 2021-01-06 04:21

How can I force TPL to use a fixed number of threads? I know MaxDegreeOfParallelism can be used to set the upper limit, but I want the upper limit to equal the lower limit.

相关标签:
2条回答
  • 2021-01-06 04:39

    You could create your own TaskScheduler if you really needed to, but using TaskCreationOptions.LongRunning is probably the best approach.

    How to: Create a Task Scheduler That Limits the Degree of Concurrency

    0 讨论(0)
  • 2021-01-06 04:41

    Have you tried using TaskCreationOptions.LongRunning when creating the tasks? It's only a hint, but I believe it may help:

    Specifies that a task will be a long-running, coarse-grained operation. It provides a hint to the TaskScheduler that oversubscription may be warranted.

    It's possible that that will oversubscribe it beyond MaxDegreeOfParallelism of course... you should probably try to find a resource which explains it in detail. How are you creating your tasks, by the way?

    0 讨论(0)
提交回复
热议问题