В Документах MSDN говорится
Если операция вызывает исключение, которое не обрабатывается вашим кодом, BackgroundWorker перехватывает исключение и передает его в обработчик событий RunWorkerCompleted, где оно отображается как Ошибка. свойство System.ComponentModel.RunWorkerCompletedEventArgs
Но когда я попробовал
_workers[i].DoWork += (s, args) =>
{
throw new Exception("Error!");
};
, я получил ошибку Exception Unhandled ... Кажется, код не попадает в RunWorkerCompleted
. Как должны обрабатываться ошибки?
У меня есть простые обработчики
_workers[i].DoWork += (s, args) =>
{
throw new Exception("Error!");
}
...
_workers[i].RunWorkerCompleted += (s, args) =>
{
if (args.Error != null) {
string dummy = args.Error.Message;
}
...
};
Код никогда не покидает DoWork