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

  • CancellationTokenSource maakt een token en kan de annulering signaleren.
  • CancellationToken wordt doorgegeven aan taken of methoden die IsCancellationRequested kunnen 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.