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:
CancellationTokenSourcevytváří token a může signalizovat zrušení.CancellationTokenje předáván úlohám nebo metodám, které mohou kontrolovatIsCancellationRequesteda 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.