.net Core Task Cancellation

4 min read Jun 03, 2024
.net Core Task Cancellation

Annulation des tâches dans .NET Core

L'annulation de tâches est une fonctionnalité essentielle dans .NET Core pour gérer efficacement les opérations asynchrones longues. Lorsqu'une tâche devient inutile ou doit être interrompue, la capacité de l'annuler proprement est cruciale.

Comprendre l'annulation des tâches

Dans .NET Core, les tâches sont représentées par la classe Task. L'annulation d'une tâche est gérée à l'aide d'un jeton d'annulation (CancellationToken). Ce jeton est un objet qui indique si une opération doit être annulée ou non.

Utilisation d'un jeton d'annulation

Pour utiliser un jeton d'annulation, suivez ces étapes:

  1. Créer un jeton d'annulation: Utilisez la classe CancellationTokenSource pour créer un jeton d'annulation.
  2. Passer le jeton à la tâche: Transmettez le jeton d'annulation à la méthode ou à la fonction qui exécute la tâche.
  3. Vérifier l'état du jeton: Dans le corps de la tâche, utilisez la propriété IsCancellationRequested du jeton pour vérifier si l'annulation a été demandée.
  4. Annuler la tâche: Si l'annulation est demandée, quittez la tâche de manière propre et ordonnée.

Exemple d'annulation de tâche

using System;
using System.Threading;
using System.Threading.Tasks;

public class Example
{
    public static async Task Main(string[] args)
    {
        // Créer un jeton d'annulation
        CancellationTokenSource cts = new CancellationTokenSource();
        CancellationToken token = cts.Token;

        // Démarrer la tâche
        Task task = Task.Run(() =>
        {
            // Vérifier l'état du jeton
            while (!token.IsCancellationRequested)
            {
                // Exécuter des opérations 
                Console.WriteLine("Tâche en cours d'exécution...");
                Thread.Sleep(1000);
            }
            Console.WriteLine("Tâche annulée");
        }, token);

        // Attendre quelques secondes
        await Task.Delay(5000);

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

        // Attendre la fin de la tâche
        await task;
    }
}

Dans cet exemple, la tâche s'exécute pendant 5 secondes et est ensuite annulée. L'annulation de la tâche est gérée par la propriété IsCancellationRequested du jeton d'annulation.

Avantages de l'annulation des tâches

L'utilisation de l'annulation des tâches offre de nombreux avantages:

  • Gestion propre des tâches: L'annulation permet de gérer les tâches longues de manière ordonnée et de libérer les ressources.
  • Réduction des ressources: L'annulation des tâches permet d'éviter de gaspiller des ressources système en interrompant les tâches inutiles.
  • Fiabilité accrue: L'annulation des tâches permet de gérer les erreurs et les exceptions de manière plus fiable.

En conclusion, l'annulation de tâches est une fonctionnalité essentielle pour gérer les tâches asynchrones dans .NET Core. Elle permet d'améliorer la fiabilité, l'efficacité et la gestion des ressources de vos applications.

Related Post


Featured Posts