Sobes.tech
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:

  1. CancellationTokenSource — erstellt ein Abbruch-Token.
  2. Übergabe von CancellationToken an eine Aufgabe oder asynchrone Methode.
  3. Innerhalb der Aufgabe regelmäßig die Eigenschaft token.IsCancellationRequested überprüfen oder token.ThrowIfCancellationRequested() aufrufen.
  4. 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.