Sobes.tech
Junior — Middle

Pouvez-vous expliquer le concept de jeton d'annulation dans le contexte de la programmation multithread?

sobes.tech IA

Réponse de l'IA

Le jeton d'annulation (Cancellation Token) en programmation multithread est un objet utilisé pour coordonner l'annulation d'opérations asynchrones ou parallèles.

Idée principale : un thread (ou composant) peut demander l'annulation d'une opération, et d'autres qui exécutent cette opération peuvent vérifier périodiquement l'état du jeton et terminer correctement si l'annulation est demandée.

En C#, cela est implémenté via la classe CancellationToken et CancellationTokenSource :

  • CancellationTokenSource crée un jeton et peut signaler l'annulation.
  • CancellationToken est passé aux tâches ou méthodes qui peuvent vérifier IsCancellationRequested et réagir à l'annulation.

Exemple :

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

Task.Run(() => {
    while (!token.IsCancellationRequested)
    {
        // Effectuer le travail
    }
    // Nettoyage et fin
}, token);

// Quelque part dans le code, on demande l'annulation
cts.Cancel();

Cela permet d'interrompre de manière sûre et contrôlée des opérations longues ou en arrière-plan.