FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Cerrar el programa al acabar un thread
Hola.
Tengo un programa en delphi 6 que al iniciarse arranca un thread paralelo de ejecución, y quiero que al terminar el thread se cierre toda la aplicación automáticamente. En un principio lo intenté con el siguiente código: h: HWND; h := FindWindow(nil, 'Interfaz'); if h <> 0 then PostMessage(h, WM_CLOSE, 0, 0); siendo Interfaz el Caption del formulario único de la aplicación, pero me da el siguiente error: Exception EAccessViolation in module Project1.exe at 00020667. ¿Qué hago mal? ¿De que otra forma podría finiquitar la aplicación desde el hilo? Muchas gracias |
#2
|
||||
|
||||
alguna tiene que funcionar
Te tiro un par de ideas (no las probe)
1. Coloca la propiedad FreeOnTerminate en true. Cada cierto tiempo checkea el estado de la instancia del objeto si es igual a nil, si es asi terminas. No me acuerdo si se pone en nil en forma automatica cuando termina. 2. La propiedad FreeOnTerminate en el thread ponela en false. Coloca una propiedad en el thread llamado Terminado: boolean, que cuando termine se ponga en verdadero. Cada cierto tiempo checkeas el esta de la bandera. Si esta en true terminas el hilo y cerras la aplicación. 3. Para no tener que checkear el estado de nada, podes generar un evento desde el thread avisando que termino. Alguna tiene que funcionar Suerte
__________________
[Crandel] |
#3
|
||||
|
||||
Un ejemplito:
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
|
|
|