Это обновление старого сообщения от 2015 года, которое я решил обновить, поскольку я все еще вижу задачи, которые запущены, и не задумываюсь о сбоях запуска или отмене задачи.
Если вы не знаете, как запускать Tasks, посмотрите в конце этой статьи ссылки на Microsoft и вернитесь сюда, когда будете готовы.
Задачи великолепны, запускайте что-то в фоновом режиме и запускайте пользовательский интерфейс без каких-либо серьезных зависаний или обычных проблем с вызовом веб-сервисов или ресурсоемких задач.
Но обработка исключений в вызываемой задаче достаточно проста, если вы знаете, как это сделать
Ключ смотрит на логическое значение Task.IsFaulted.
- Task.IsFaulted имеет значение true : задача была завершена из-за исключения.
- Task.IsFaulted имеет значение false: задача была завершена нормально (без исключений).
Исключения, возвращаемые задачей
Исключения возвращаются в виде коллекции, верхнее исключение довольно бесполезно, и вам нужно просмотреть внутреннее исключение, чтобы найти реальную причину проблемы.< br />
Что делать, если я не обрабатываю исключения
Что ж!! ваш код будет выполняться, поскольку задача была успешно запущена, и ваш вызывающий слой/пользовательский интерфейс может находиться в состоянии, далеком от идеального, и ваше приложение может перестать работать, и вам может потребоваться много времени (читай) для того, чтобы узнать или отладить точная проблема. Задачи без обработки исключений — это черные дыры, ожидающие своего появления.
Код
Полный список здесь: https://gist.github.com/FrankKerrigan/bba05009e0dd8e851916cfa98c6f46b2