He leído algunas fuentes sobre métodos adecuados para enviar un mensaje desde un hilo a todos los otros hilos para salir con elegancia (cada hilo realiza su propia rutina de salida). De estos, me gustó la idea de un booleano atómico global que pueda marcarse desde cualquier subproceso, y todos los demás hilos comprueban este indicador para realizar una rutina de salida: cuando todos los hilos se unen, el hilo principal puede salir de la aplicación.Salida eficiente de la aplicación multiproceso (detalles)
Los hilos puramente computacionales probablemente se manejarían de manera diferente, ¿no?
¿Es esto eficiente y seguro? ¿Hay una mejor manera de hacer esto?
Gracias!
suena inteligente, pero simplemente no puedo sacudir la sensación de "esto es demasiado hacky" cada vez que lo leo ... – Necrolis
Admitiré que no es portátil, pero la mayoría de las otras soluciones realmente restringen lo que los terceros código que puedes usar en tus hilos. Utilizo mucho los hilos para la creación de redes, y necesito bibliotecas de redes de terceros (por ejemplo, Indy) que puedan 'detenerse' de forma segura. – Roddy
Todavía no lo entiendo, incluso de la explicación más detallada. Utiliza QueueUserAPC cuando desea salir dentro de un hilo y, finalmente, llama a una función que arroja una excepción y esta excepción llega a cada hilo? ¿Cómo se llaman los destructores y cómo se ve la función de lanzamiento de excepción? (Toda esta área de programación es nueva para mí) ¡Gracias! – oneminute