Счетчик не является единичным экземпляром, необходимо указать имя экземпляра - PullRequest
1 голос
/ 24 декабря 2008

При разработке приложения консоли мониторинга производительности, что передается в метод getcategories?:

PerformanceCounter[] pcArr = pc.GetCounters(string instance);

При использовании перегрузки без параметров генерируется исключение времени выполнения:

Счетчик не является единичным экземпляром, необходимо указать имя экземпляра.

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

Спасибо

1 Ответ

3 голосов
/ 24 декабря 2008

Вам необходимо указать имя экземпляра в методе GetCounters (). Если вы посмотрите на свой монитор производительности в Панели управления -> Администрирование. Посмотрите на столбец «Экземпляр». Это то, что вам нужно дать этому методу. Все счетчики с одинаковым именем экземпляра будут возвращены. Если в этом столбце «---» ничего нет, то это единственный экземпляр, и вам не нужно ничего передавать.

Насколько я могу судить, причина «экземпляров» заключается в том, что для мониторинга может быть несколько «устройств». В категории процессоров у вас может быть несколько экземпляров, по одному на каждый процессор, у меня два ядра, поэтому есть '0', '1' и '_Total'. Память - один экземпляр (по крайней мере, на моей машине).

Я бы отдельно задал вопрос о вашем методе статической утилиты или методе расширения.

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