¿Puede un programa C # medir su propio uso de CPU de alguna manera?

Estoy trabajando en un programa en segundo plano que se ejecutará durante mucho tiempo y tengo un programa de registro externo (SmartInspect) que quiero alimentar periódicamente con algunos valores, para monitorearlo en tiempo real cuando se depure.

Sé que simplemente puedo iniciar varios programas, como el Administrador de tareas o la Información de tareas de IARSN, pero me gustaría mantener todo en mi propio programa para esto, ya que también quiero agregar algunas reglas simples como si el programa usa más de X% CPU, marque esto en el registro.

Tengo un hilo de fondo que periódicamente alimenta algunas estadísticas, ics a SmartInspect, como el consumo de memoria, el conjunto de trabajo, etc.

¿Es posible que este hilo obtenga una medida razonablemente precisa de la cantidad de recursos de CPU de la computadora que consume? El programa principal es una aplicación de subproceso único (aparte del subproceso de vigilancia que registra las estadísticas), por lo que si una técnica se limita a¿Cuánto usa un solo hilo? entonces eso también sería bueno.

Encontré algunas entradas relacionadas con algo llamadorusage para Linux y C. ¿Hay algo similar que pueda usar para esto?

Editar: Ok, probé el contador de rendimiento, pero agregó una gran cantidad de datos GC cada vez que se llamaba, por lo que el gráfico para el uso de memoria y la recolección de basura se disparó. Supongo que dejaré esta parte por ahora.

Respuestas a la pregunta(5)

Su respuesta a la pregunta