Junior — Middle
79
Какими методами можно отменить выполнение задачи в системе?
Ответ от нейросети
sobes.tech AI
В C# для отмены выполнения задачи (Task) обычно используется механизм CancellationToken. Основные методы отмены:
- CancellationTokenSource — создаёт токен отмены.
- Передача CancellationToken в задачу или асинхронный метод.
- Внутри задачи периодическая проверка свойства
token.IsCancellationRequestedили вызовtoken.ThrowIfCancellationRequested(). - Вызов
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("Задача была отменена");
}
}
Таким образом, отмена — это кооперативный процесс, где задача сама должна поддерживать проверку токена отмены.