2010-08-12 2 views
3

Я знаю, что могу использовать System.Environment.ProcessorCount, чтобы вернуть число «процессоров» в машину. То, что я пытаюсь сделать, это выяснить, есть ли способ определить количество ядер в процессоре, не считая гиперпотоков как «ядро». Например, на двухъядерном процессоре гиперпоточности System.Environment.ProcessorCount вернет 4, потому что есть 2 физических ядра, как с гиперпотоком. То, что я хочу сделать, это вернуть 2, потому что есть только 2 физических ядра.Извлечение числа физических процессоров ядра

Я использую C#, кстати.

ответ

3

Вы можете использовать WMI для получения количества ядер в системе. Этот аналогичный вопрос о переполнении стека включает пример кода: ->How to find the Number of CPU Cores via .NET/C#?

Важным моментом является то, что в некоторых системах это значение может быть недоступно; например, на Windows Server 2003 вам нужно загрузить исправление от Microsoft, чтобы получить «NumberOfCores» для работы.

Смежные вопросы