.NET任务调度程序支持多少个处理器核心

Pet*_*inl 10 .net multithreading task-parallel-library

出于好奇,我想知道.NET任务调度程序支持多少个处理器内核.

Windows Server 2012最多支持640个核心.(是).NET限制为64还是会使用所有可用内核?

Pet*_*inl 10

.NET确实支持所有核心.来自Stehphen Toub在MSDN Parallel Extensions论坛上的回答:

默认的TPL TaskScheduler以.NET为目标ThreadPool.默认情况下,池仅限于一个处理器组,因此限制为64个核心.但是,在.NET 4.5中,您可以设置<Thread_UseAllCpuGroups enabled="true"/>标志.当您的计算机具有多个CPU组时,启用此元素会导致运行时跨所有CPU组分发托管线程,而不是仅限于一个,因此默认调度程序可以针对操作系统支持的任何内容.(GCCpuGroup还必须启用此设置才能生效.)