Maison >développement back-end >C++ >Comment puis-je utiliser les méthodes asynchrones dans la fonction principale d'une application console C# ?

Comment puis-je utiliser les méthodes asynchrones dans la fonction principale d'une application console C# ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-05 13:05:40447parcourir

How Can I Use Async Methods in a C# Console Application's Main Function?

Utilisation de async dans une application console en C#

En C#, utilisation de async dans une application console nécessite un examen attentif en raison du fait que la fonction Main ne peut pas être marquée comme asynchrone. En effet, le point d'entrée d'une application console ne peut pas avoir le modificateur async.

Pour résoudre ce problème, deux options principales sont disponibles :

  1. Attendez la tâche asynchrone :

    • Dans cette approche, vous pouvez utiliser le Méthode Wait() sur la Tâche renvoyée par la fonction async dans la fonction Main. Cela bloquera le thread principal jusqu'à ce que la tâche async soit terminée. Par exemple :
    static void Main()
    {
       MainAsync().Wait();
    }
    
    static async Task MainAsync()
    {
       ...
    }
  2. Utiliser un contexte asynchrone personnalisé :

    • Vous pouvez également définir votre AsyncContext classe pour gérer l'exécution asynchrone. Cette classe peut fournir une méthode Run qui prend une action async comme argument et attend son achèvement. Par exemple :
    static void Main()
    {
       AsyncContext.Run(() => MainAsync());
    }
    
    static async Task MainAsync()
    {
       ...
    }

En utilisant l'une de ces options, vous pouvez exécuter du code async dans une application console tout en conservant la compatibilité avec les exigences de la plateforme. .

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