Sobes.tech
Junior — Middle

Quels sont les méthodes pour annuler l'exécution d'une tâche dans le système?

sobes.tech IA

Réponse de l'IA

En C#, pour annuler l'exécution d'une tâche (Task), le mécanisme CancellationToken est généralement utilisé. Les méthodes principales d'annulation :

  1. CancellationTokenSource — crée un jeton d'annulation.
  2. Passer CancellationToken à une tâche ou une méthode asynchrone.
  3. À l'intérieur de la tâche, vérifier périodiquement la propriété token.IsCancellationRequested ou appeler token.ThrowIfCancellationRequested().
  4. Appeler CancellationTokenSource.Cancel() pour demander l'annulation.

Exemple :

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

var task = Task.Run(() => {
    for (int i = 0; i < 100; i++) {
        token.ThrowIfCancellationRequested();
        // travail
        Thread.Sleep(100);
    }
}, token);

// Annuler la tâche
cts.Cancel();

try {
    task.Wait();
} catch (AggregateException ex) {
    if (ex.InnerExceptions.Any(e => e is OperationCanceledException)) {
        Console.WriteLine("La tâche a été annulée");
    }
}

Ainsi, l'annulation est un processus coopératif, où la tâche doit elle-même maintenir la vérification du jeton d'annulation.