Используйте WMI для получения количества физических и логических процессоров в C#

В этом примере показано, как вы можете определить количество процессоров вашего компьютера, как физических, так и логических.

Многие компьютеры в наши дни содержат несколько процессоров. Каждый процессор может содержать несколько ядер, процессоры, которые могут выполнять инструкции. Наконец, некоторые ядра могут выполнять несколько потоков исполнения одновременно. И все это отдельно от многопоточности, используемой операционной системой, где система быстро переключается между потоками, чтобы заставить ее казаться, что разные программы работают одновременно.

Все это затрудняет определение того, сколько потоков выполнения может выполняться одновременно. Следующий метод GetProcessorCounts возвращает количество физических процессоров, количество ядер и количество логических процессоров.

Метод сначала использует WMI для выбора информации Win32_ComputerSystem. Он использует свойство NumberOfProcessors возвращаемого объекта, чтобы получить количество физических процессоров в системе.

Далее метод использует WMI для выбора информации Win32_Processor. Каждый из этих объектов представляет собой физический процессор. (Таким образом, количество возвращаемых объектов должно равняться количеству физических процессоров, которые только что вычислил метод.) Код проходит через возвращенные объекты процессора и суммирует их количество ядер.

Наконец, код использует Environment.ProcessorCount для получения логического числа процессоров. Это включает в себя все потоки, которые могут работать одновременно на всех процессорах и ядрах. Обычно это все, о чем вы заботитесь в программе. Он также должен быть равен:

Источник: http://csharphelper.com/blog/2015/02/use-wmi-get-number-physical-logical-processors-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *