2015-06-22 2 views
0

В нашем приложении мы используем несколько фоновых работников, которые выполняются с использованием SERVICENAME__bgw.RunWorkerAsync(), где SERVICENAME является одним из нескольких различных процессов рабочего стола, выполняемых разными таймерами.Необработанные исключения и фоновые работники

Мы недавно увидели это сообщение об ошибке, которое было показано после необработанной ошибки пузырились к вершине стека вызовов:

enter image description here

Мой вопрос, разве это сообщение об ошибке (которое ожидает клик пользователя) повесить все приложение, или только процесс, который его начал?

Другими словами, будут ли все остальные совпадающие фоновые работники всегда ждать ввода пользователем, прежде чем продолжить, или будут ли они выполняться, потому что они не были в одном потоке?

ответ

1

Другие потоки продолжатся. Только поток, используемый BackgroundWorker, выйдет из строя.

Исправлено необработанное исключение. Поскольку в обработчике событий нет обработки исключений, он будет зависеть от CLR в качестве последнего средства. Это не повлияет на другие потоки.

+0

Спасибо, я считаю, что мы попытаемся обработать эти необработанные исключения на уровне приложения, чтобы избежать этих ситуаций. –