Sobes.tech
Junior — Middle

Můžete vysvětlit koncept tokenu zrušení v kontextu vícenásobného programování?

sobes.tech AI

Odpověď od AI

Token zrušení (Cancellation Token) v vícevláknovém programování je objekt, který se používá k koordinaci zrušení asynchronních nebo paralelních operací.

Hlavní myšlenka: jeden vlákno (nebo komponenta) může požádat o zrušení operace, a ostatní, které tuto operaci provádějí, mohou periodicky kontrolovat stav tokenu a správně ukončit práci, pokud je zrušení požadováno.

V C# je to realizováno přes třídy CancellationToken a CancellationTokenSource:

  • CancellationTokenSource vytváří token a může signalizovat zrušení.
  • CancellationToken je předáván úlohám nebo metodám, které mohou kontrolovat IsCancellationRequested a reagovat na zrušení.

Příklad:

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

Task.Run(() => {
    while (!token.IsCancellationRequested)
    {
        // Provádět práci
    }
    // Úklid a ukončení
}, token);

// Někde v kódu voláme zrušení
cts.Cancel();

To umožňuje bezpečně a kontrolovaně přerušit dlouhé nebo pozadí operace.