На моей машине Windows 7 - Enterprise с 1 x Intel Xeon E5-1660 0 @ 3,30Ghz (6 ядер/процессор с активированной поддержкой Hyper Threading), то есть Environment.ProcessorCount return 12.C# Environment.ProcessorCount не всегда возвращает полное количество логических процессоров, почему?
На Windows Server 2012 с 2 x Intel Xeon E5-2697 v3 @ 2.60GHz (активировано 14 ядер/процессор с поддержкой Hyper Threading (я думаю, потому что диспетчер задач показывает: 2 сокета, 28 ядер, 56 логических процессоров)), Environment.ProcessorCount return 28, который кажется нам неправильным, потому что 2x14x2 = 56.
Почему в Windows Server 2012 C# метод Environment.ProcessorCount не возвращает правильное количество логических процессоров?
В качестве дополнительной информации, переменные среды следующим образом: NUMBER_OF_PROCESSORS = 28
Update 2015-05-26:
Существует более деталей/причин это связано ошибка в моем другом вопросе: Unable to use more than one processor group for my threads in a C# app. В основном я думаю, что C# использует только одну группу процессоров. То, что было на нашем сервере, было 2 группы процессоров, хотя было всего 56 логических процессоров. Но это HP CUSTOMER ADVISORY объясняет, почему наша конфигурация BIOS сервера вызывала ошибки Windows.
Я удивлен, что 'Environment.PermissionAccess' дает вам никакой информации о процессоре :-) I даже не может его документировать. –
Извините, я редактировал заголовок вопроса ... Я использовал неправильное имя метода. Прости. Спасибо за информацию. –