Почему операция прямого броска отменяет задачуC#

Место общения программистов C#
Ответить
Anonymous
 Почему операция прямого броска отменяет задачу

Сообщение Anonymous »

Я прочитал документацию «Статус для установки в отмену требует трех условий: < /p>
  • OperationCanceledException (или его полученный тип исключения, такой как TaskCanceDException ), брошен
  • token.IsCancellationRequested это правда
  • token в делегате, передаваемая в OperationCanceDException идентична Token , передаваемому в виде параметра при создании задачи
Однако следующий пример бросает непосредственно без какого -либо токена, но сменит отмену. Это потому, что токен является структурой, поэтому значение по умолчанию всегда удовлетворяет последним двум условиям? Я не уверен в этой мысли, надеюсь получить некоторое объяснение, если бы я ошибался < /p>
var task = Task.Run(() =>
{
throw new OperationCanceledException();
});

try
{
task.Wait();
}
catch (AggregateException)
{
Console.WriteLine(task.Status); // Cancelled
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... s-the-task
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»