Подтвердить что ты не робот

CancellationTokenSource vs volatile boolean

Есть ли какие-либо преимущества для использования CancellationTokenSource над volatile boolean field для сигнализации a Task для завершения?

4b9b3361

Ответ 1

Конечно, да. Здесь очень много. Я перечислю несколько.

  • CancellationToken поддерживает обратные вызовы. Вы можете получать уведомления, когда требуется аннулирование.
  • CancellationToken поддерживает WaitHandle, который вы можете ждать бесконечно или с таймаутом.
  • Вы можете запланировать отмену CancellationToken с помощью метода CancellationTokenSource.CancelAfter.
  • Вы можете связать свой CancellationToken с другим, чтобы при отмене другого можно считать отмененным.
  • В Task, если вы имеете в виду System.Threading.Tasks.Task, volatile boolean не может перевести состояние задачи на отмену, но CancellationToken может.