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 :
- CancellationTokenSource — crée un jeton d'annulation.
- Passer CancellationToken à une tâche ou une méthode asynchrone.
- À l'intérieur de la tâche, vérifier périodiquement la propriété
token.IsCancellationRequestedou appelertoken.ThrowIfCancellationRequested(). - 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.