Junior — Middle
Milliseid meetodeid saab kasutada ülesande täitmise tühistamiseks süsteemis?
sobes.tech AI
Vastus AI-lt
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("Задачата беше отменена");
}
}
Така, отменянето е кооперативен процес, при който задачата сама трябва да поддържа проверка на токена за отменяне.