ExitThread
Termina un hilo.
Sintaxis
VOID ExitThread( DWORD dwExitCode // código de salida para este hilo );
Parámetros:
dwExitCode: especifica el código de salida para el hilo que llama. Usar la función GetExitCodeThread para recuperar el valor de salida del hilo.
Valor de retorno
Esta función no devuelve ningún valor.
Observaciones
ExitThread es el método recomendado para salir de un hilo. Cuando esta función es llamada (ya sea explícitamente o por el retorno del procedimiento de un hilo), la pila actual del hilo es liberada y el hilo termina. La función de punto de entrada de todas las bibliotecas dinámicas asociadas (DLLs) es invocada con un valor que indica que el hilo ha sido desasociado de la DLL.
Si el hilo es el último hilo en el proceso cuando esta función es llamada, el proceso del hilo también se termina.
El estado del objeto hilo pasa al estado "señalizado", reanudando cualquier otro hilo que esté esperando a que el hilo termine. El estado de terminación del hilo cambia de STILL_ACTIVE al valor del parámetro dwExitCode.
Terminar un hilo no elimina necesariamente el objeto hilo del sistema operativo. Un objeto hilo se borra cuando el último manipulador al hilo es cerrado.
Las funciones ExitProcess, ExitThread, CreateThread, CreateRemoteThread, y un proceso que haya empezado (como el resultado de una llamada a CreateProcess) son serializados entre cada otro proceso en su interior. Sólo uno de estos eventos puede suceder en un espacio de direcciones a la vez. Esto significa que existen las siguientes restricciones:
- Durante el proceso de arranque y rutinas de inicialización de DLL, pueden ser creados nuevos hilos, pero no pueden comenzar su ejecución hasta que la inicialización de la DLL esté terminada para el proceso.
- Sólo un hilo en cada proceso puede estar en una inicialización de una DLL o en una rutina separada a la vez.
- ExitProcess no regresará hasta que no haya hilos en sus inicializaciones de DLL o rutinas separadas.
Un hilo que use funciones de una biblioteca run-time C debe usar las funciones beginthread y endthread de run-time C para manejar hilos en lugar de CreateThread y ExitThread. El no hacer esto puede producir pequeñas pérdidas de memoria cuando se llame a ExitThread.