我从QueuedTaskScheduler.cs documentation看到以下内容,但对我来说不是很清楚。
threadCount-创建并用于处理工作项的线程数。maxConcurrencyLevel-此调度程序的工作允许的最大并发度。

问题-threadCountmaxConcurrencyLevel有什么区别?

最佳答案

threadCount是许多为计划程序完成的任务创建的线程。这意味着您的应用程序将创建一堆具有给定限制的线程。


maxConcurrencyLevel是调度程序中同时执行的任务的数量。这意味着您的调度程序将同时处理有限数量的任务。



这个数字看起来非常相似,但是却有些不同。从理论上讲,线程数应几乎等于应用程序服务器上的内核数,因为这可以帮助您避免上下文切换开销。

至于并发级别,如果您的任务非常小,那么此数目可能几乎等于线程数(或线程数+ 1),也可能比线程数大得多,因此处理器将快速执行它们。

总而言之,您应该尝试不同的组合并评估系统性能。

您也可以在related post on MSDN blogs上看到一些示例

关于c# - C#-QueuedTaskScheduler-threadCount与maxConcurrencyLevel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38103223/

10-09 18:54