.net Core Task.run Example

4 min read Jun 03, 2024
.net Core Task.run Example

Découverte des tâches asynchrones avec Task.Run dans .NET Core

Introduction

Dans le développement d'applications .NET Core, la gestion des tâches asynchrones est essentielle pour améliorer les performances et l'expérience utilisateur. La classe Task.Run est un outil puissant qui permet d'exécuter du code de manière asynchrone sur un thread distinct du thread principal. Dans cet article, nous allons explorer les avantages et les exemples d'utilisation de Task.Run dans vos applications .NET Core.

Qu'est-ce que Task.Run ?

Task.Run est une méthode statique de la classe Task qui permet de lancer une action sur un thread distinct. Le code exécuté dans le thread distinct est encapsulé dans un delegate ou une lambda expression.

Avantages de l'utilisation de Task.Run

  • Amélioration des performances: L'exécution des tâches longues ou gourmandes en ressources sur un thread distinct évite de bloquer le thread principal, permettant à votre application de rester réactive et de répondre aux interactions de l'utilisateur.
  • Meilleure gestion de l'asynchronisme: Task.Run vous permet de gérer l'asynchronisme de manière simple et efficace.
  • Utilisation simplifiée des threads: Vous n'avez pas besoin de gérer explicitement les threads, Task.Run s'occupe de la création et de la gestion des threads pour vous.

Exemple d'utilisation de Task.Run

using System;
using System.Threading.Tasks;

public class Example
{
    public static async Task Main(string[] args)
    {
        // Fonction qui simule une tâche longue
        Func LongTask = (n) =>
        {
            Console.WriteLine($"Tâche commencée sur le thread {Thread.CurrentThread.ManagedThreadId}");
            for (int i = 0; i < n; i++)
            {
                // Simule un travail long
                Thread.Sleep(100);
            }
            Console.WriteLine($"Tâche terminée sur le thread {Thread.CurrentThread.ManagedThreadId}");
            return n * 2;
        };

        // Exécute la tâche de manière asynchrone
        Task task = Task.Run(() => LongTask(5));

        // Exécute d'autres opérations sur le thread principal
        Console.WriteLine("Exécution d'autres opérations sur le thread principal...");

        // Attend la fin de la tâche asynchrone
        int result = await task;

        Console.WriteLine($"Résultat : {result}");
        Console.ReadKey();
    }
}

Explication du code:

  • La méthode LongTask simule un travail long et imprime le thread courant.
  • Task.Run lance LongTask sur un thread distinct.
  • Le thread principal continue de s'exécuter et affiche un message.
  • await task attend que la tâche asynchrone se termine avant de récupérer le résultat.

Conclusion

Task.Run est un outil puissant qui vous permet de gérer facilement l'asynchronisme dans vos applications .NET Core. L'utilisation de Task.Run pour les tâches longues ou gourmandes en ressources garantit des performances optimales et une expérience utilisateur fluide. N'hésitez pas à expérimenter et à intégrer Task.Run dans vos projets pour améliorer la réactivité et l'efficacité de vos applications.

Related Post


Featured Posts