Heim > Backend-Entwicklung > C++ > Wie rufe ich eine asynchrone Methode von einer synchronen Hauptmethode in C# auf?

Wie rufe ich eine asynchrone Methode von einer synchronen Hauptmethode in C# auf?

DDD
Freigeben: 2024-12-31 02:29:08
Original
943 Leute haben es durchsucht

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

Asynchrone Methoden aus Main aufrufen: Eine umfassende Anleitung

Einführung

Die Frage stellt sich, wann Ein Entwickler muss eine asynchrone Methode aus einem herkömmlichen synchronen Kontext wie der Main-Methode aufrufen. Diese Situation taucht häufig auf, wenn man den Bereich der asynchronen Programmierung in C# erforscht.

Problem

Angesichts der folgenden asynchronen Methode:

public class test
{
    public async Task Go()
    {
        // ... various async operations
    }
}
Nach dem Login kopieren

Die Es entsteht ein Dilemma, wenn man versucht, Go über die Main-Methode, den synchronen Eintrag des Programms, aufzurufen Punkt.

Lösung

In C# 7.1 und späteren Versionen ist der Aufruf einer asynchronen Methode von Main aus unkompliziert:

static async Task Main(string[] args)
{
    test t = new test();
    await t.Go();
    Console.WriteLine("finished");
    Console.ReadKey();
}
Nach dem Login kopieren

Dieser Code stellt dies sicher Die asynchronen Vorgänge von Go werden abgeschlossen, bevor das Programm beendet ist.

Für C#-Versionen vor 7.1 gilt ein anderer Ansatz notwendig:

static void Main(string[] args)
{
    test t = new test();
    t.Go().Wait();
    Console.WriteLine("finished");
    Console.ReadKey();
}
Nach dem Login kopieren

Der Aufruf von Wait() blockiert den aktuellen Thread, bis die asynchronen Vorgänge von Go abgeschlossen sind.

Vorteile von Async-Methoden

Eliminierung von Rückrufen, Dies kann den Code komplex und schwierig zu warten machen und ist ein wesentlicher Vorteil der asynchronen Programmierung mit dem Schlüsselwort async. Es ermöglicht einen sauberen und sequentiellen Ausführungsablauf und ermöglicht gleichzeitig die gleichzeitige Ausführung anderer Vorgänge.

Das obige ist der detaillierte Inhalt vonWie rufe ich eine asynchrone Methode von einer synchronen Hauptmethode in C# auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage