2012-05-03 14 views
15

Estoy tratando de averiguar cuántos hilos ejecuta mi aplicación para hacer un gráfico en vivo del rendimiento. ¿Puede señalarme en la dirección correcta o proporcionar un ejemplo de código? ¡Gracias!Descubre cuántos hilos ejecuta mi aplicación?

+0

¿Desea saber cuántos hilos ha creado explícitamente? ¿O cualquier hilo .NET puede haber creado en su nombre también? –

+3

¿Cómo estaría saber cuántos hilos existen relacionados con el rendimiento? Sin duda, lo interesante es lo que están haciendo esos hilos. –

+0

@David Heffernan: Estaba tratando de encontrar una manera de hacer esto también. Principalmente estaba buscando registrar cuántos hilos había en la aplicación a lo largo del tiempo para analizar cómo el programa manejaba su generación/liberación de hilo y esperaba encontrar una rima o razón de por qué el número de hilos (como se muestra en la tarea) gerente) estaría creciendo ridículamente alto. Entonces esto podría estar relacionado con el rendimiento desde ese punto de vista. –

Respuesta

31

Usted puede echar un vistazo a la propiedad Threads del proceso actual:

System.Diagnostics.Process.GetCurrentProcess().Threads 

Por supuesto, esto incluye roscas no administrados también.

+0

¿Esto incluye hilos terminados? – clamp

+2

Especificar el ensamblaje y el espacio de nombres para algo que no está incluido por defecto en un proyecto C# haría que la respuesta sea más completa. 'Process' está en el espacio de nombres' System.Diagnostics'. – ThunderGr

+0

@Darin Dimitrove ¿hay alguna forma de descubrir que '¿Qué hilo pertenece a qué sección del programa?' – AminM

-2
private static int s_threadCount; 

private static void MyMethod() { 
    Interlocked.Increment(ref s_threadCount); 
    try { 
    ... 
    } finally { 
    Interlocked.Decrement(ref s_threadCount); 
    } 
} 
+4

Eso solo le indicaría el número de subprocesos en ese método en particular, no el número de subprocesos para el proceso como un todo. –

Cuestiones relacionadas