В моем приложении WinForms используется несколько объектов BackgroundWorker для извлечения информации из базы данных. Я использую BackgroundWorker, потому что он позволяет UI оставаться разблокированным во время длительных запросов к базе данных, и это упрощает модель потоков для меня.
Я получаю случайные DatabaseExceptions в некоторых из этих фоновых потоков, и я был свидетелем хотя бы одного из этих исключений в рабочем потоке во время отладки. Я довольно уверен, что эти исключения - это таймауты, которые, я полагаю, разумно ожидать от них время от времени.
Мой вопрос о том, что происходит, когда необработанное исключение возникает в одном из этих потоков рабочего потока.
Я не думаю, что могу поймать исключение в другом потоке, но могу ли я ожидать, что мой метод WorkerCompleted будет выполнен? Есть ли какое-либо свойство или метод BackgroundWorker, который я могу опросить для исключений?