thread create c++ c multithreading winapi

c++ - create thread



¿Cómo puedo determinar si un hilo de Win32 ha terminado? (2)

La documentación que enlaza advierte contra el uso de STILL_ACTIVE como código de retorno, ya que no se puede distinguir del valor de retorno utilizado para indicar un hilo activo. Entonces no lo use como valor de retorno y no tendrá este problema.

¿Cómo puedo determinar si un hilo de Win32 ha terminado?

La documentación de GetExitCodeThread advierte que no debe usarse por este motivo, ya que el código de error STILL_ACTIVE se puede devolver por otros motivos.

¡Gracias por la ayuda! :)


MSDN menciona que "Cuando termina un hilo, el objeto de hilo alcanza un estado señalado, que satisface los hilos que estaban esperando en el objeto".

Por lo tanto, puede verificar si un hilo ha finalizado comprobando el estado del mango del hilo, ya sea señalizado o no:

DWORD result = WaitForSingleObject( hThread, 0); if (result == WAIT_OBJECT_0) { // the thread handle is signaled - the thread has terminated } else { // the thread handle is not signaled - the thread is still alive }