BackgroundWorker & Exceptions

В Документах 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

5
задан Jiew Meng 25 November 2010 в 09:43
поделиться