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:
CancellationTokenSourceerstellt ein Token und kann den Abbruch signalisieren.CancellationTokenwird an Tasks oder Methoden übergeben, dieIsCancellationRequestedü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.