Может ли программа на C # измерить загрузку своего процессора?

Я работаю над фоновой программой, которая будет работать в течение длительного времени, и у меня есть внешняя программа регистрации (SmartInspect), что я хочу периодически кормить с некоторыми значениями, чтобы отслеживать его в режиме реального времени при отладке.

Я знаю, что могу просто запустить несколько программ, таких как Диспетчер задач или IARSN TaskInfo, но для этого я хотел бы сохранить все в своей собственной программе, так как я также хочу добавить несколько простых правил, например, если программа использует больше X% CPU, отметьте это в журнале.

У меня есть фоновый поток, который периодически передает некоторую статистику в SmartInspect, например, потребление памяти, рабочий набор и т. Д.

Возможно ли для этого потока получить достаточно точную оценку того, сколько ресурсов процессора компьютера он потребляет? Основная программа является однопоточным приложением (кроме сторожевого потока, который регистрирует статистику), поэтому, если метод ограниченсколько использует один поток тогда это тоже было бы хорошо.

Я нашел некоторые записи, связанные с чем-то под названиемrusage для Linux и C. Есть ли что-то подобное, что я могу использовать для этого?

Редактировать: Хорошо, я попробовал счетчик производительности, но он каждый раз вызывал довольно много GC-данных, поэтому график использования памяти и сбора мусора взлетел до небес. Я думаю, я просто оставлю эту часть пока.

Ответы на вопрос(5)

Ваш ответ на вопрос