Работа с исключениями в асинхронном потоке BackgroundWorker_DoWork() - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день! Работаю с компонентом BackgroundWorker. В обработчике DoWork вызываю метод, который может выбросить исключение. Как можно передать это исключение в основной поток? Сейчас делаю следующим образом:
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            try 
{
method(obj);
e.Result=null;
}
catch (Exception exc)
{
e.Result=exc;
}
}
 
private void backgroundWorker_RunWorkerCompleted(object sender, DoWorkEventArgs e)
{
if (e.Result==null)
    return;
MessageBox.Show("Error");
}

Решение задачи: «Работа с исключениями в асинхронном потоке BackgroundWorker_DoWork()»

textual
Листинг программы
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
    method(obj);
}
 
private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
    if (e.Error==null)
        return;
    MessageBox.Show("Error");
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5