Appel de méthodes asynchrones depuis Main : un guide complet
Introduction
La question se pose quand un développeur doit appeler une méthode asynchrone à partir d'un contexte synchrone traditionnel tel que la méthode Main. Cette situation apparaît souvent lors de l'exploration du domaine de la programmation asynchrone en C#.
Problème
Étant donné la méthode asynchrone suivante :
public class test { public async Task Go() { // ... various async operations } }
Le un dilemme survient lorsque l'on tente d'appeler Go depuis la méthode Main, l'entrée synchrone du programme point.
Solution
Dans C# 7.1 et versions ultérieures, appeler une méthode asynchrone depuis Main est simple :
static async Task Main(string[] args) { test t = new test(); await t.Go(); Console.WriteLine("finished"); Console.ReadKey(); }
Ce code garantit que Les opérations asynchrones de Go se terminent avant la fin du programme.
Pour les versions C# antérieures à 7.1, une approche différente est nécessaire :
static void Main(string[] args) { test t = new test(); t.Go().Wait(); Console.WriteLine("finished"); Console.ReadKey(); }
L'appel de Wait() bloque le thread actuel jusqu'à la fin des opérations asynchrones de Go.
Avantages des méthodes asynchrones
Élimination des rappels, qui peut rendre le code complexe et difficile à maintenir, constitue un avantage clé de la programmation asynchrone utilisant le mot-clé async. Il permet un flux d'exécution propre et séquentiel tout en permettant à d'autres opérations de se dérouler simultanément.
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!