_endthread, _endthreadex
Termina un subproceso; _endthread termina un subproceso creado por _beginthread y _endthreadex termina un subproceso creado por _beginthreadex.
![]() |
---|
Esta API no se puede usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución.Para más información, vea Funciones de CRT no admitidas con /ZW. |
void _endthread( void ); void _endthreadex( unsigned retval );
Parámetros
- retval
Código de salida del subproceso.
Comentarios
Puede llamar a _endthread o _endthreadex explícitamente para terminar un subproceso; sin embargo, se llama a _endthread o _endthreadex automáticamente cuando el subproceso vuelve de la rutina que se pasa como parámetro a _beginthread o _beginthreadex. Si se finaliza un subproceso con una llamada a endthread o las ayudas de _endthreadex, se garantiza la recuperación correcta de los recursos que se asignan para el subproceso.
![]() |
---|
En el caso de un archivo ejecutable vinculado a Libcmt.lib, no llame a la API ExitThread de Win32, ya que esto impide que el sistema en tiempo de ejecución reclame los recursos asignados._endthread y _endthreadex recuperan los recursos de subprocesos asignados y después llaman a ExitThread. |
_endthread cierra automáticamente el identificador del subproceso. Este comportamiento es distinto que el de la API ExitThread de Win32. Por consiguiente, cuando use _beginthread y _endthread, no cierre el identificador del subproceso de forma explícita llamando a la API CloseHandle de Win32.
Al igual que la API ExitThread de Win32, _endthreadex no cierra el identificador del subproceso. Por consiguiente, al usar _beginthreadex y _endthreadex, debe cerrar el identificador de subproceso llamando a la API CloseHandle de Win32.
![]() |
---|
_endthread y _endthreadex hacen que no se llame a los destructores de C++ pendientes en el subproceso. |
Requisitos
Función |
Encabezado necesario |
---|---|
_endthread |
<process.h> |
_endthreadex |
<process.h> |
Para obtener más información sobre compatibilidad, vea Compatibilidad.
Bibliotecas
Solo las versiones de multiproceso de las bibliotecas en tiempo de ejecución de C.
Ejemplo
Consulte el ejemplo de _beginthread.
Equivalente en .NET Framework
No es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.