Estoy comenzando un hilo usando AfxBeginThread
. Esto devuelve un puntero a un nuevo objeto CWinThread
.¿A quién pertenece CWinThread después de haber sido creado por AfxBeginThread?
MSDN indica que este puntero es NULO y desasignará todo si falla la creación. Sin embargo, tan pronto como el hilo sale después de comenzar regularmente, el objeto CWinThread
aún existe. No estoy seguro de si debería eliminar el objeto CWinThread
o si esto lo hace MFC (aunque no parece).
FYI no es probable que el hilo salga, ya que debe ejecutarse hasta que finalice la aplicación. Sin embargo, dado que lo uso para formar parte de un grupo de subprocesos, no quiero que el CWinThread
cuelgue de una vez por todas.
Esta respuesta es incorrecta. Al finalizar el hilo, 'CWinThread' cerrará el manejador del hilo y se eliminará. Por lo tanto, este código puede llamar a 'WaitForSingleObject' en un identificador cerrado, que es un comportamiento indefinido, o puede intentar eliminar un objeto que ya ha sido eliminado. El enfoque correcto es usar 'm_bAutoDelete' en un hilo _suspended_, como se explica en una respuesta de @jla. –