Зачем нужен CancellationToken? - C#

Узнай цену своей работы

Формулировка задачи:

у CancellationTokenSource есть тот-же свойство IsCancellationRequested, и метод Cancel вызывается у CancellationTokenSource. Зачем они нужны оба не понятно

Решение задачи: «Зачем нужен CancellationToken?»

textual
Листинг программы
  1. public void DoWork(CancellationToken externalToken)
  2. {
  3.    // Create a new token that combines the internal and external tokens.
  4.    this.internalToken = internalTokenSource.Token;
  5.    this.externalToken = externalToken;
  6.  
  7.    using (CancellationTokenSource linkedCts =
  8.            CancellationTokenSource.CreateLinkedTokenSource(internalToken, externalToken))
  9.    {
  10.        try {
  11.            DoWorkInternal(linkedCts.Token);
  12.        }
  13.        catch (OperationCanceledException) {
  14.            if (internalToken.IsCancellationRequested) {
  15.                Console.WriteLine("Operation timed out.");
  16.            }
  17.            else if (externalToken.IsCancellationRequested) {
  18.                Console.WriteLine("Cancelling per user request.");
  19.                externalToken.ThrowIfCancellationRequested();
  20.            }
  21.        }
  22.    }
  23. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут