2011-02-03 21 views
6

probable que me estoy perdiendo algo obvio, pero sígueme ...¿Cómo Ventana hilo de Visual Studio Identificar el "Tema principal'

Siempre me gusta nombrar los hilos importantes en mis aplicaciones ya que es útil en la depuración/logging, etc. Si consulta el nombre del hilo principal a través del Thread.CurrentThread.Name al inicio del programa, obtendrá null. Por lo tanto, siempre me aseguro de que lo primero que sucede es que el hilo principal (y cualquier otro hilo relevante) reciba un significativo nombre para futura referencia.

Nunca pensé mucho hasta hoy, pero al mirar la ventana de Hilos en Visual Studio (antes de asignar cualquier nombre de hilo) ed, etc.), se asigna una categoría especial 'Main Thread', así como un nombre de psuedo que también dice "Main Thread" (pero que no es el nombre real de la secuencia).

Desde una perspectiva administrada, .NET no expone nada significativo en System.Threading.Thread o System.Diagnostics.ProcessThread que identifica el hilo principal de una aplicación (al menos eso pude ver). Miré la lista de Windows Process and Thread Functions, y de nuevo, no vi nada obvio (¿quizás OpenThread?).

Es curioso si alguien sabe cómo la ventana Subprocesos asigna la categoría especial "Tema principal"?

Respuesta

5

El depurador inicia la depuración con CreateProcess utilizando la opción DEBUG_PROCESS. El identificador del subproceso principal se devuelve en PROCESS_INFORMATION.hThread para que no adivine allí. La vinculación es un poco más complicada, presumiblemente la primera notificación CREATE_THREAD_DEBUG_EVENT se ve desde WaitForDebugEvent después de adjuntar con DebugActiveProcess().

El source code para MDbg está disponible si desea ver más de cerca.

+0

Ah, eso tiene sentido; Gracias por la info. El SourceCode definitivamente es interesante. –

+0

Las notificaciones de CREATE_THREAD_DEBUG_EVENT son asincrónicas. No estoy seguro de que el orden de entrega esté garantizado. La información devuelta por CreateProcess tiene sentido, sin embargo. –

Cuestiones relacionadas