Maison  >  Article  >  développement back-end  >  Utiliser des tâches C#

Utiliser des tâches C#

WBOY
WBOYoriginal
2024-02-19 12:16:051130parcourir

Utiliser des tâches C#

Utilisation des tâches C#, des exemples de code spécifiques sont requis

Présentation :
La tâche est un type très couramment utilisé en C#. Elle représente une opération exécutable qui peut être exécutée de manière asynchrone et renvoyer le résultat. Les tâches jouent un rôle important dans la gestion des opérations asynchrones, le traitement parallèle et l'amélioration des performances des applications. Cet article présentera l'utilisation de base de Task et fournira quelques exemples de code spécifiques.

  1. Créer et utiliser une tâche
    En C#, vous pouvez utiliser la classe Task pour créer et utiliser une tâche asynchrone. Voici un exemple de code pour créer et utiliser une tâche :
using System;
using System.Threading.Tasks;

class Program
{
    static void Main()
    {
        // 创建并启动一个Task
        Task task = Task.Run(() =>
        {
            //异步执行的代码逻辑
            Console.WriteLine("Task is executing...");
        });

        // 等待Task完成
        task.Wait();

        Console.WriteLine("Task is completed.");
    }
}

Dans l'exemple ci-dessus, nous avons créé une tâche et spécifié la logique d'exécution de la tâche via la méthode Task.Run. Nous utilisons ensuite la méthode task.Wait pour attendre la fin de la tâche et imprimer un message lorsque la tâche est terminée.

  1. La tâche renvoie des résultats
    Parfois, nous avons besoin d'une tâche pour renvoyer un résultat à l'appelant. La classe Task fournit une série de méthodes, telles que Task, Task.Run, Task.FromResult, etc., pour gérer les tâches avec des valeurs de retour. Voici un exemple de code qui renvoie les résultats de la tâche :
using System;
using System.Threading.Tasks;

class Program
{
    static void Main()
    {
        // 创建并启动一个Task
        Task<int> task = Task.Run(() =>
        {
            //异步执行的代码逻辑
            return 42;
        });

        // 等待并获取任务结果
        int result = task.Result;

        Console.WriteLine("Task result: " + result);
    }
}

Dans l'exemple ci-dessus, nous avons créé une tâche qui renvoie un résultat entier et obtenu le résultat de la tâche une fois l'exécution de la tâche terminée.

  1. Tâches multiples exécutées en parallèle
    La tâche peut également être utilisée pour exécuter plusieurs tâches en même temps, améliorant ainsi les performances de l'application. Ceci peut être réalisé en utilisant les méthodes Task.WhenAll ou Task.WhenAny. Voici un exemple de code pour l'exécution parallèle de plusieurs tâches :
using System;
using System.Threading.Tasks;

class Program
{
    static void Main()
    {
        Task task1 = Task.Run(() =>
        {
            Console.WriteLine("Task 1 is executing...");
        });

        Task<int> task2 = Task.Run(() =>
        {
            Console.WriteLine("Task 2 is executing...");
            return 42;
        });

        Task task3 = Task.Run(() =>
        {
            Console.WriteLine("Task 3 is executing...");
        });

        // 等待所有任务完成
        Task.WhenAll(task1, task2, task3).Wait();

        Console.WriteLine("All tasks are completed.");
    }
}

Dans l'exemple ci-dessus, nous avons créé trois tâches et avons attendu que toutes les tâches soient terminées via la méthode Task.WhenAll.

Conclusion : 
Grâce aux exemples de code ci-dessus, nous comprenons l'utilisation de base de Task en C#. La classe Task offre un moyen pratique de gérer les opérations asynchrones, le traitement parallèle et d'améliorer les performances des applications. Dans les projets réels, nous pouvons utiliser Task pour gérer diverses tâches asynchrones selon les besoins.

Remarque : l'exemple de code ci-dessus est uniquement utilisé pour démontrer l'utilisation de base de Task. En utilisation réelle, il peut devoir être ajusté et optimisé en fonction de besoins spécifiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn