.net How To Use Cancellationtoken

4 min read Jun 04, 2024
.net How To Use Cancellationtoken

Utilisation de CancellationToken dans .NET

Le CancellationToken est un outil puissant dans .NET qui permet de gérer l'annulation asynchrone des tâches. Il permet de signaler aux tâches en cours qu'elles doivent s'arrêter et libérer les ressources associées. Cette fonctionnalité est particulièrement utile pour les opérations longues ou susceptibles d'être interrompues, comme les requêtes réseau, les traitements de fichiers volumineux ou les boucles infinies.

Créer un CancellationTokenSource

Pour utiliser un CancellationToken, vous devez d'abord créer un CancellationTokenSource. Ce dernier est responsable de la création du token et de la gestion de son état.

using System.Threading;

CancellationTokenSource source = new CancellationTokenSource();
CancellationToken token = source.Token;

Utiliser le CancellationToken dans les méthodes asynchrones

Vous pouvez passer le CancellationToken aux méthodes asynchrones qui doivent être annulées. L'utilisation du CancellationToken se fait généralement par l'intermédiaire de la propriété CancellationToken de la méthode Task ou Task<T>.

async Task GetLongRunningData(CancellationToken cancellationToken)
{
    cancellationToken.ThrowIfCancellationRequested(); // Vérifier l'état du token

    // Code pour effectuer l'opération longue

    return "Données récupérées";
}

Signaler l'annulation

Pour signaler l'annulation, utilisez la méthode Cancel du CancellationTokenSource. Cette méthode modifie l'état du CancellationToken et déclenche l'exception OperationCanceledException dans les tâches qui le surveillent.

source.Cancel(); // Signaler l'annulation

Gestion des exceptions d'annulation

Les tâches qui surveillent le CancellationToken lèveront une exception OperationCanceledException si elles détectent une demande d'annulation. Vous pouvez gérer cette exception dans le bloc catch pour nettoyer les ressources et effectuer des actions de récupération.

try
{
    await GetLongRunningData(token);
}
catch (OperationCanceledException ex)
{
    Console.WriteLine("La tâche a été annulée : " + ex.Message);
}

Avantages d'utiliser le CancellationToken

L'utilisation de CancellationToken présente plusieurs avantages:

  • Gestion efficace de l'annulation: Il permet d'arrêter proprement les opérations longues et de libérer les ressources associées.
  • Code plus propre et plus lisible: Il simplifie la gestion de l'annulation et rend le code plus facile à comprendre et à maintenir.
  • Fiabilité accrue: Il garantit une meilleure fiabilité en permettant aux tâches d'être annulées de manière contrôlée.

Conclusion

Le CancellationToken est un outil essentiel pour la gestion de l'annulation asynchrone dans .NET. En l'intégrant dans votre code, vous pouvez garantir une meilleure gestion des ressources, une fiabilité accrue et un code plus propre et plus lisible. N'hésitez pas à l'utiliser pour toutes vos opérations longues ou susceptibles d'être interrompues.

Related Post


Featured Posts