Tengo un hilo de trabajo que es vital para mi aplicación.
Se creó con new Thread(method).Start();
No me uno, solo espero que se ejecute mientras mi programa se ejecute.
Sin embargo, puede suceder que haya una excepción atrapada en este hilo; y como consecuencia, el hilo se cerrará (junto con el último registro). Una recuperación no es posible para este error crítico. Como el hilo es vital para la aplicación, también debe apagarse.Cómo supervisar un hilo de trabajo vital
Ahora mi pregunta es: ¿Cómo puedo controlar el estado de mi hilo?
¿Le
- encuesta
IsAlive
la propiedad? - ¿volver a lanzar la excepción atrapada y trabajar con
AppDomain.CurrentDomain.UnhandledException
? - ¿Implementar un
event
que señalará el final de mi hilo de fondo? - utiliza un
BackgroundWorker
, que implementaRunWorkerCompleted
? (¿Pero es un BackgroundWorker realmente la elección correcta para los hilos de larga ejecución?) - algo completamente diferente?
EDIT:
En este momento, resuelto el problema llamando Application.Exit()
->accidente temprano y con frecuencia. Esa es una opción, también :)
Pero necesito una referencia a un control - sólo para este purpuse:/ – tanascius
Un control es una forma conveniente de ejecutar código en el hilo de UI. No necesariamente el único camino. Por lo general, debe volver atrás en algún momento, tiendo a preferir lo antes posible. –