我从QueuedTaskScheduler.cs
documentation看到以下内容,但对我来说不是很清楚。threadCount
-创建并用于处理工作项的线程数。maxConcurrencyLevel
-此调度程序的工作允许的最大并发度。
问题-threadCount
和maxConcurrencyLevel
有什么区别?
最佳答案
threadCount
是许多为计划程序完成的任务创建的线程。这意味着您的应用程序将创建一堆具有给定限制的线程。
maxConcurrencyLevel
是调度程序中同时执行的任务的数量。这意味着您的调度程序将同时处理有限数量的任务。
这个数字看起来非常相似,但是却有些不同。从理论上讲,线程数应几乎等于应用程序服务器上的内核数,因为这可以帮助您避免上下文切换开销。
至于并发级别,如果您的任务非常小,那么此数目可能几乎等于线程数(或线程数+ 1),也可能比线程数大得多,因此处理器将快速执行它们。
总而言之,您应该尝试不同的组合并评估系统性能。
您也可以在related post on MSDN blogs上看到一些示例
关于c# - C#-QueuedTaskScheduler-threadCount与maxConcurrencyLevel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38103223/