Función ExitThread (processthreadsapi.h)
Finaliza el subproceso que llama.
Sintaxis
void ExitThread(
[in] DWORD dwExitCode
);
Parámetros
[in] dwExitCode
Código de salida del subproceso.
Valor devuelto
Ninguno
Observaciones
ExitThread es el método preferido para salir de un subproceso en el código de C. Sin embargo, en el código de C++, el subproceso se cierra antes de que se pueda llamar a cualquier destructor o se pueda realizar cualquier otra limpieza automática. Por lo tanto, en el código de C++, debe devolver desde la función de subproceso.
Cuando se llama a esta función (ya sea explícitamente o devolviendo desde un procedimiento de subproceso), se desasigna la pila del subproceso actual, se cancelan todas las E/S pendientes iniciadas por el subproceso que no está asociado a un puerto de finalización y el subproceso finaliza. La función de punto de entrada de todas las bibliotecas de vínculos dinámicos (DLL) adjuntas se invoca con un valor que indica que el subproceso se desasocia del archivo DLL.
Si el subproceso es el último subproceso del proceso cuando se llama a esta función, el proceso del subproceso también se termina.
El estado del objeto de subproceso se señala, liberando cualquier otro subproceso que hubiera estado esperando a que finalice el subproceso. El estado de finalización del subproceso cambia de STILL_ACTIVE al valor del parámetro dwExitCode .
La terminación de un subproceso no quita necesariamente el objeto de subproceso del sistema operativo. Cuando se cierra el último identificador del subproceso, se elimina un objeto de subproceso.
Las funciones ExitProcess, ExitThread, CreateThread, CreateRemoteThread y un proceso que se inicia (como resultado de una llamada a CreateProcess ) se serializa entre sí dentro de un proceso. Solo se puede producir uno de estos eventos en un espacio de direcciones a la vez. Esto significa que las restricciones siguientes contienen:
- Durante las rutinas de inicio del proceso y de inicialización de DLL, se pueden crear nuevos subprocesos, pero no comienzan la ejecución hasta que se realiza la inicialización de DLL para el proceso.
- Solo un subproceso de un proceso puede estar en una rutina de inicialización o desasociación de DLL a la vez.
- ExitProcess no devuelve hasta que no hay subprocesos en sus rutinas de inicialización o desasociación de DLL.
Use la función GetExitCodeThread para recuperar el código de salida de un subproceso.
Windows Phone 8.1: esta función es compatible con las aplicaciones de Windows Phone Store en Windows Phone 8.1 y versiones posteriores.
Windows 8.1 y Windows Server 2012 R2: esta función es compatible con las aplicaciones de la Tienda Windows en Windows 8.1, Windows Server 2012 R2 y versiones posteriores.
Ejemplos
Para obtener un ejemplo, vea Usar objetos de evento.
Requisitos
Cliente mínimo compatible | Windows XP [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | processthreadsapi.h (incluye Windows.h en Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Library | Kernel32.lib; WindowsPhoneCore.lib en Windows Phone 8.1 |
Archivo DLL | Kernel32.dll; KernelBase.dll en Windows Phone 8.1 |