Я знаю, как получить количество физических и логических процессоров на моей машине, но я хочу знать, к скольким логическим процессорам имеет доступ мое приложение.
Например, я разрабатываю на четырехъядерной машине, но у меня есть несколько одноядерных пользователей, и во многих случаях я «тупею» в интерфейсе или сталкиваюсь с проблемами блокировки, которые никогда не возникают в многоядерной системе.
Итак, с этой целью я настроил VSTS для создания моего приложения либо в режиме отладки, либо в режиме «Отладка одного ядра». Цель в основном состоит в том, чтобы установить привязку процессора к ядру «0», что, глядя на диспетчер задач Windows, работает, как и ожидалось.
Моя проблема в том, что я только что заметил (и задним числом это должно было быть очевидно), что во всем моем коде у меня есть Environment.ProcessorCount >= something, который отлично работает для действительно одноядерных машин, но не дает мне прочитать мой единственный «логически доступное ядро».
Как я могу получить количество «доступных» логических ядер?
С# предпочтительнее
Environment.ProcessorCount. - person Jeff Sternal   schedule 25.01.2010