Junior — Middle
Môžete vysvetliť koncept tokenu zrušenia v kontexte viacvláknového programovania?
sobes.tech AI
Odpoveď od AI
Token zrušenia (Cancellation Token) v viacvláknovom programovaní je objekt, ktorý sa používa na koordináciu zrušenia asynchrónnych alebo paralelných operácií.
Hlavná myšlienka: jeden vlákno (alebo komponent) môže požadovať zrušenie operácie, a ostatné, ktoré vykonávajú túto operáciu, môžu periodicky kontrolovať stav tokenu a správne ukončiť prácu, ak je požadované zrušenie.
V C# je to realizované cez triedy CancellationToken a CancellationTokenSource:
CancellationTokenSourcevytvára token a môže signalizovať zrušenie.CancellationTokenje odovzdávaný úlohám alebo metódam, ktoré môžu kontrolovaťIsCancellationRequesteda reagovať na zrušenie.
Príklad:
var cts = new CancellationTokenSource();
var token = cts.Token;
Task.Run(() => {
while (!token.IsCancellationRequested)
{
// Vykonávať prácu
}
// Uklízenie a ukončenie
}, token);
// Niekde v kóde voláme zrušenie
cts.Cancel();
To umožňuje bezpečne a kontrolovane prerušiť dlhé alebo pozadie operácie.