Задать вопрос
@Akaero

Как правильно отменять Task?

Изучаю отмену тасков через
CancellationToken
на кнопку повесил обработчик, который отменяет задачу, а в самой задаче проверяю, отменена ли она с помощью token.ThrowIfCancellationRequested();

Дойдя до выброса исключения, WF приложение падает.
5a97e33a2aba1303339993.png
Как правильно обработать данное исключение?
  • Вопрос задан
  • 106 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 2
freeExec
@freeExec
Участник OpenStreetMap
Раз вы вызываете исключение, то должны его и ловить.
Смотрите примеры или вот https://blogs.msdn.microsoft.com/andrewarnottms/20...
Ответ написан
AlexanderYudakov
@AlexanderYudakov
C#, 1С, Android, TypeScript
Обрабатывать нужно не только OperationCancelledException, но и все другие виды исключений, через await:

try
{
    await Go1Async(tcs.Token);
}
catch(Exception ex)
{
    textBox1.Text = ex.Message;
}

Как минимум, при выполнении Go1Async(), если там есть что-то, связанное с сетью, мы рискуем получить всякие TimeoutException, WebException, просто IOException, да и, вообще, что угодно.

Так что, OperationCancelledException - это всего лишь частный случай из всех возможных вариантов неудачного выполнения операции.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы