Junior — Middle
Welche Methoden können verwendet werden, um die Ausführung einer Aufgabe im System abzubrechen?
sobes.tech KI
Antwort von AI
In C# wird zum Abbrechen der Ausführung einer Aufgabe (Task) in der Regel der Mechanismus CancellationToken verwendet. Die wichtigsten Abbruchmethoden:
- CancellationTokenSource — erstellt ein Abbruch-Token.
- Übergabe von CancellationToken an eine Aufgabe oder asynchrone Methode.
- Innerhalb der Aufgabe regelmäßig die Eigenschaft
token.IsCancellationRequestedüberprüfen odertoken.ThrowIfCancellationRequested()aufrufen. - Aufruf von
CancellationTokenSource.Cancel(), um die Abbruchanfrage zu stellen.
Beispiel:
var cts = new CancellationTokenSource();
var token = cts.Token;
var task = Task.Run(() => {
for (int i = 0; i < 100; i++) {
token.ThrowIfCancellationRequested();
// Arbeit
Thread.Sleep(100);
}
}, token);
// Aufgabe abbrechen
cts.Cancel();
try {
task.Wait();
} catch (AggregateException ex) {
if (ex.InnerExceptions.Any(e => e is OperationCanceledException)) {
Console.WriteLine("Aufgabe wurde abgebrochen");
}
}
Daher ist das Abbrechen ein kooperativer Prozess, bei dem die Aufgabe selbst die Überprüfung des Abbruchtokens aufrechterhalten muss.