Документы MSDN говорят
Если операция вызывает исключение, которое не обрабатывается вашим кодом, BackgroundWorker перехватывает исключение и передает его в обработчик событий RunWorkerCompleted, гдеэто выставлено как свойство Error System.ComponentModel.RunWorkerCompletedEventArgs
Но когда я попробовал
_workers[i].DoWork += (s, args) =>
{
throw new Exception("Error!");
};
, я получаю исключение Необработанная ошибка ...перейти к 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