Junior — Middle
Puoi spiegare il concetto di token di cancellazione nel contesto della programmazione multithread?
sobes.tech AI
Risposta dell'AI
Il token di cancellazione (Cancellation Token) nella programmazione multithread è un oggetto utilizzato per coordinare l'annullamento di operazioni asincrone o parallele.
Idea principale: un thread (o componente) può richiedere l'annullamento di un'operazione, e altri che eseguono questa operazione possono verificare periodicamente lo stato del token e terminare correttamente se viene richiesto l'annullamento.
In C#, questo viene implementato tramite le classi CancellationToken e CancellationTokenSource:
CancellationTokenSourcecrea un token e può segnalare l'annullamento.CancellationTokenviene passato a task o metodi che possono verificareIsCancellationRequestede reagire all'annullamento.
Esempio:
var cts = new CancellationTokenSource();
var token = cts.Token;
Task.Run(() => {
while (!token.IsCancellationRequested)
{
// Eseguire lavoro
}
// Pulizia e terminazione
}, token);
// Da qualche parte nel codice, si richiede l'annullamento
cts.Cancel();
Questo permette di interrompere in modo sicuro e controllato operazioni lunghe o in background.