En una aplicación WPF tengo una tarea de acceso a la base de datos supervisada, ejecutada periódicamente por un temporizador y esta tarea se ha ejecutado en un subproceso BackgroundWorker.¿Cómo manejar excepciones desde un subproceso BackgroundWorker?
Cuando falló el intento de conexión, planteé una excepción mediante la construcción try_catch
y deseo actualizar un texto de la barra de estado en una secuencia de UI.
¿Hay alguna construcción evento prebuild en un BackgroundWorker
para implementar esto, algo así como DoWorkEventHandler
o RunWorkerCompletedEventHandler
, que se puede utilizar para esto? Si no, ¿cómo hacerlo mejor?
Editado (añadió):
Si quiero manejar la excepción dentro RunWorkerCompletedEventHandler
, utilizando e.Error
parámetro, no funciona. En caso dejo excepción no controlada en el hilo BackgroundWorker
, la aplicación se cuelga en puntos y depurador a la cadena de código que está en el interior excuted BackgroundWorker
hilo, diciendo que: excepción fue controlada por el código de usuario.
Por lo tanto, en este caso, el hilo no se detiene, indicando a RunWorkerCompletedEventHandler
que se detuvo con un error, pero toda la aplicación deja de funcionar.
Gracias a todos por responder! Tomando en cuenta algunas respuestas, actualicé mi pregunta con más detalles. – rem