Sobes.tech
Junior — Middle

Können Sie das Konzept des Abbruchtokens im Kontext der Multithread-Programmierung erklären?

sobes.tech KI

Antwort von AI

Das Abbruch-Token (Cancellation Token) in der Multithread-Programmierung ist ein Objekt, das zur Koordination der Abbruch von asynchronen oder parallelen Operationen verwendet wird.

Hauptidee: Ein Thread (oder Komponente) kann eine Operation abbrechen anfordern, und andere, die diese Operation ausführen, können den Status des Tokens regelmäßig überprüfen und korrekt beenden, wenn ein Abbruch angefordert wird.

In C# wird dies durch die Klassen CancellationToken und CancellationTokenSource implementiert:

  • CancellationTokenSource erstellt ein Token und kann den Abbruch signalisieren.
  • CancellationToken wird an Tasks oder Methoden übergeben, die IsCancellationRequested überprüfen und auf den Abbruch reagieren können.

Beispiel:

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

Task.Run(() => {
    while (!token.IsCancellationRequested)
    {
        // Arbeit ausführen
    }
    // Aufräumen und Beenden
}, token);

// Irgendwo im Code den Abbruch aufrufen
cts.Cancel();

Dies ermöglicht es, langwierige oder Hintergrundoperationen sicher und kontrolliert abzubrechen.