2011-11-29 17 views

Respuesta

7

concurrencia Visualizer es una muy nueva, pero muy cool! característica por lo que hay un poco (todavía creo) de información con respecto a ella, por debajo de lo que he encontrado en las fuentes de información oficiales como MSDN:

  • hilo trabajador - Un hilo que fue creado por el hilo principal de la aplicación (Tema principal de entrada en la tabla)
  • trabajador CLR Tema - Un subproceso de trabajo que fue creado por los Common Language Runtime

enlaces útiles:

+0

¿En qué circunstancias el CLR crear hilos? ¿Son estos los hilos creados por [ThreadPool] (http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx)? Dada tu respuesta, también estoy desconcertado por la gran cantidad de Trabajadores de hilos, no entiendo cómo podría haber creado tantos. – pomeroy

+0

Realmente difícil de decir sin mirar el código de la aplicación. CLR podría crear grupos de trabajo CLR para recolección de basura, con respecto a subprocesos de aplicaciones, nuevamente esto es solo conjetura, pero suponiendo que la aplicación use Thread Pool existe un comportamiento bien documentado - "si la aplicación pone en cola tareas para el grupo de subprocesos más rápido que un subproceso manejarlo, entonces el grupo de subprocesos creará subprocesos adicionales. "y" Lo bueno de un grupo de subprocesos es que es heurístico. Si su aplicación necesita realizar muchas tareas, el grupo de subprocesos crea más subprocesos ". – sll

+0

Mirando la captura de pantalla solo tiene un hilo de aplicación activo (excepto el hilo principal) que es morado en el gráfico de línea de tiempo, esto significa que está involucrado en la operación de E/S (está leyendo archivo/red, puerto o similar), todo otros hilos están bloqueados para sincronización. No tengo idea de por qué tienes muchos hilos de trabajo bloqueados, ¿estás creando subprocesos en algún ciclo sincronizado? – sll

Cuestiones relacionadas