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

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

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

Добрый день! Работаю с компонентом BackgroundWorker. В обработчике DoWork вызываю метод, который может выбросить исключение. Как можно передать это исключение в основной поток? Сейчас делаю следующим образом:
Листинг программы
  1. private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
  2. {
  3. try
  4. {
  5. method(obj);
  6. e.Result=null;
  7. }
  8. catch (Exception exc)
  9. {
  10. e.Result=exc;
  11. }
  12. }
  13. private void backgroundWorker_RunWorkerCompleted(object sender, DoWorkEventArgs e)
  14. {
  15. if (e.Result==null)
  16. return;
  17. MessageBox.Show("Error");
  18. }

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

textual
Листинг программы
  1. private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
  2. {
  3.     method(obj);
  4. }
  5.  
  6. private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
  7. {
  8.     if (e.Error==null)
  9.         return;
  10.     MessageBox.Show("Error");
  11. }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут