Maison > développement back-end > C++ > Comment appeler une méthode asynchrone à partir d'une méthode principale synchrone en C# ?

Comment appeler une méthode asynchrone à partir d'une méthode principale synchrone en C# ?

DDD
Libérer: 2024-12-31 02:29:08
original
942 Les gens l'ont consulté

How Do I Call an Async Method from a Synchronous Main Method in C#?

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
    }
}
Copier après la connexion

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();
}
Copier après la connexion

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();
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal