Это обновление старого сообщения от 2015 года, которое я решил обновить, поскольку я все еще вижу задачи, которые запущены, и не задумываюсь о сбоях запуска или отмене задачи.

Если вы не знаете, как запускать Tasks, посмотрите в конце этой статьи ссылки на Microsoft и вернитесь сюда, когда будете готовы.

Задачи великолепны, запускайте что-то в фоновом режиме и запускайте пользовательский интерфейс без каких-либо серьезных зависаний или обычных проблем с вызовом веб-сервисов или ресурсоемких задач.

Но обработка исключений в вызываемой задаче достаточно проста, если вы знаете, как это сделать

Ключ смотрит на логическое значение Task.IsFaulted.

  • Task.IsFaulted имеет значение true : задача была завершена из-за исключения.
  • Task.IsFaulted имеет значение false: задача была завершена нормально (без исключений).

Исключения, возвращаемые задачей

Исключения возвращаются в виде коллекции, верхнее исключение довольно бесполезно, и вам нужно просмотреть внутреннее исключение, чтобы найти реальную причину проблемы.< br />

Что делать, если я не обрабатываю исключения

Что ж!! ваш код будет выполняться, поскольку задача была успешно запущена, и ваш вызывающий слой/пользовательский интерфейс может находиться в состоянии, далеком от идеального, и ваше приложение может перестать работать, и вам может потребоваться много времени (читай) для того, чтобы узнать или отладить точная проблема. Задачи без обработки исключений — это черные дыры, ожидающие своего появления.

Код

Полный список здесь: https://gist.github.com/FrankKerrigan/bba05009e0dd8e851916cfa98c6f46b2

Ссылки Майкрософт: