Sobes.tech
Junior — Middle
78

Какими методами можно отменить выполнение задачи в системе?

Ответ от нейросети

sobes.tech AI

В C# для отмены выполнения задачи (Task) обычно используется механизм CancellationToken. Основные методы отмены:

  1. CancellationTokenSource — создаёт токен отмены.
  2. Передача CancellationToken в задачу или асинхронный метод.
  3. Внутри задачи периодическая проверка свойства token.IsCancellationRequested или вызов token.ThrowIfCancellationRequested().
  4. Вызов CancellationTokenSource.Cancel() для запроса отмены.

Пример:

var cts = new CancellationTokenSource();
var token = cts.Token;

var task = Task.Run(() => {
    for (int i = 0; i < 100; i++) {
        token.ThrowIfCancellationRequested();
        // работа
        Thread.Sleep(100);
    }
}, token);

// Отмена задачи
cts.Cancel();

try {
    task.Wait();
} catch (AggregateException ex) {
    if (ex.InnerExceptions.Any(e => e is OperationCanceledException)) {
        Console.WriteLine("Задача была отменена");
    }
}

Таким образом, отмена — это кооперативный процесс, где задача сама должна поддерживать проверку токена отмены.