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:
CancellationTokenSourcecreează un token și poate semnala anularea.CancellationTokeneste transmis către sarcini sau metode care pot verificaIsCancellationRequestedș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.