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

  • CancellationTokenSource crea un token e può segnalare l'annullamento.
  • CancellationToken viene passato a task o metodi che possono verificare IsCancellationRequested e 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.