Как получить количество логических ядер/потоков процессора в C#?

Как я могу получить количество логических ядер в CPU?

Мне нужно это, чтобы определить, сколько потоков я должен запустить в своем приложении.

2 ответов


вы можете получить количество логических процессоров в среде класс
количество ядер:

int coreCount = 0;
foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_Processor").Get())
{
    coreCount += int.Parse(item["NumberOfCores"].ToString());
}
Console.WriteLine("Number Of Cores: {0}", coreCount);

количество логических процессоров

foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_ComputerSystem").Get())
{
    Console.WriteLine("Number Of Logical Processors: {0}", item["NumberOfLogicalProcessors"]);
}


Окружающая среда.ProcessorCount

 using System;

 class Sample 
 {
     public static void Main() 
     {
        Console.WriteLine("The number of processors on this computer is {0}.", 
           Environment.ProcessorCount);
     }
 }

перейти по этой ссылке http://msdn.microsoft.com/en-us/library/system.environment.processorcount.aspx


использовать окружающая среда.Собственность ProcessorCount, он возвращает количество логических ядер.