Это правильный способ получить общее количество процессоров с WMI в системе с несколькими процессорами? - PullRequest
0 голосов
/ 05 апреля 2010

У меня нет доступа к компьютеру с несколькими сокетами, поэтому я не уверен, получит ли следующее общее количество процессоров и логических процессоров. Я предполагаю, что ManagementObjectSearcher будет возвращать экземпляр для каждого сокета с сокетами, и я просто сохраняю промежуточную сумму?

int totalCPUs = 0;
int totalLogicalCPUs = 0;

ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_ComputerSystem");
foreach (var mo in mos.Get())
{
    string num = mo.Properties["NumberOfProcessors"].Value.ToString();
    totalCPUs += Convert.ToInt32(num);


    num = mo.Properties["NumberOfLogicalProcessors"].Value.ToString();
    totalLogicalCPUs += Convert.ToInt32(num);
}

1 Ответ

0 голосов
/ 26 августа 2010

Будет возвращено только 1 экземпляр Win32_ComputerSystem.Из документации :

Если компьютерная система имеет два физических процессора, каждый из которых содержит два логических процессора, то значение NumberOfProcessors равно 2, а NumberOfLogicalProcessors равно 4. Процессоры могут быть многоядерными.или они могут быть процессорами с гиперпоточностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...