Junior — Middle
Kunt u het concept van een annulerings-token uitleggen in de context van multithreaded programmeren?
sobes.tech AI
Antwoord van AI
De cancelatie-token (Cancellation Token) in multithread-programmering is een object dat wordt gebruikt om de annulering van asynchrone of parallelle operaties te coördineren.
Het hoofdidee: een thread (of component) kan een operatie annuleren, en anderen die deze operatie uitvoeren, kunnen periodiek de status van de token controleren en correct afsluiten als een annulering is aangevraagd.
In C# wordt dit geïmplementeerd via de klassen CancellationToken en CancellationTokenSource:
CancellationTokenSourcemaakt een token en kan de annulering signaleren.CancellationTokenwordt doorgegeven aan taken of methoden dieIsCancellationRequestedkunnen controleren en reageren op annulering.
Voorbeeld:
var cts = new CancellationTokenSource();
var token = cts.Token;
Task.Run(() => {
while (!token.IsCancellationRequested)
{
// Werk uitvoeren
}
// Opruimen en afsluiten
}, token);
// Op een bepaald punt in de code, vraag annulering aan
cts.Cancel();
Dit maakt het mogelijk om lange of achtergrondoperaties veilig en gecontroleerd te onderbreken.