Sobes.tech
Junior — Middle

Puteți explica conceptul de token de anulare în contextul programării multithread?

sobes.tech AI

Răspuns de la AI

Tokenul de anulare (Cancellation Token) în programarea multi-thread este un obiect utilizat pentru a coordona anularea operațiilor asincrone sau paralele.

Ideea principală: un fir de execuție (sau componentă) poate solicita anularea unei operații, iar alții care execută această operație pot verifica periodic starea tokenului și pot încheia corect dacă anularea este solicitată.

În C#, acest lucru este implementat prin clasele CancellationToken și CancellationTokenSource:

  • CancellationTokenSource creează un token și poate semnala anularea.
  • CancellationToken este transmis către sarcini sau metode care pot verifica IsCancellationRequested și pot reacționa la anulare.

Exemplu:

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

Task.Run(() => {
    while (!token.IsCancellationRequested)
    {
        // Execută lucrarea
    }
    // Curățare și încheiere
}, token);

// Undeva în cod, solicităm anularea
cts.Cancel();

Acest lucru permite întreruperea sigură și controlată a operațiilor lungi sau de fundal.