C/Visual C - Matar hilos en c++

 
Vista:

Matar hilos en c++

Publicado por Héctor (14 intervenciones) el 29/04/2003 21:15:45
Hola, quería saber la forma de matar a un hilo, lanzado con AfxBeginThread(), desde otro hilo diferente. Es decir, no utilizando la llamada a AfxEndThread().
Estuve mirando por ahí la llama a la función TerminateThread(), pero no me acaba de funcionar.
Quisiera saber la forma de eliminar el hilo que lanzo, quizas utilizando el puntero a la clase CWinThread que devuelve AfxBeginThread().
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Matar hilos en c++

Publicado por Ricardo Jiménez (3 intervenciones) el 30/04/2003 14:55:47
En primer lugar comentarte que no es bueno matar una hebra en ejecución. Lo que se suele hacer en estos casos es crear dentro de la hebra un evento que sea verificado por esta. No se si el tratamiento de eventos te resulta familiar.
Si aun con lo que te me comentado quieres matarla, creo que puedes hacer los siquiente (yo siempre que trabajo con hebras uso el API).
La función retorna un puntero a CWinThread con esta puedes acceder al miembro m_hTread(manejador de la hebra) y con este puedes llamar a la función del API ExitThread.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Matar hilos en c++

Publicado por Héctor (14 intervenciones) el 30/04/2003 18:15:21
Quiero darte las gracias por la orientación que me has dado. La verdad es que no supe muy bien cómo implementar la última opción que me indicaste, utilizando la función ExitThread(). Pero al indicarme que el miembro m_hThread era el manejador del hilo, eso me hizo recordar una función con la que estuve probando anteriormente. Se trata de TerminateThread(), a la cual se le pasa un manejador. Estuve intentando pasarle el ID del hilo pero, claro, no podía funcionar.
Así que me he decantado por la utilización de la función TerminateThread(). Y gracias también por el consejo que me das diciéndome que no debo matar así como así un hilo. La verdad es que tienes mucha razón, pero creo que la aplicación que estoy desarrolando, aunque es un poco grande, es muy simple.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar