@Akaero

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

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

Дойдя до выброса исключения, WF приложение падает.
5a97e33a2aba1303339993.png
Как правильно обработать данное исключение?
  • Вопрос задан
  • 104 просмотра
Решения вопроса 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 - это всего лишь частный случай из всех возможных вариантов неудачного выполнения операции.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы