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 :
CancellationTokenSourcecrée un jeton et peut signaler l'annulation.CancellationTokenest passé aux tâches ou méthodes qui peuvent vérifierIsCancellationRequestedet 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.