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

  • CancellationTokenSource vytvára token a môže signalizovať zrušenie.
  • CancellationToken je odovzdávaný úlohám alebo metódam, ktoré môžu kontrolovať IsCancellationRequested a 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.