Heim >Backend-Entwicklung >C++ >Wie kann ich asynchrone Programmierung in C# -Konsole -Anwendungen implementieren?

Wie kann ich asynchrone Programmierung in C# -Konsole -Anwendungen implementieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-02-01 17:06:09185Durchsuche

How Can I Implement Asynchronous Programming in C# Console Applications?

C#Konsolenanwendung Asynchrones Programmieren: Verstehe

Modifikator async In der asynchronen Programmierung wird die Methode

Modifikator -Darstellung gleichzeitig mit einem anderen Code ausgeführt. In der Konsolenanwendung kann die

-Methode jedoch nicht als async definiert werden, was den Entwicklern, die das Programm asynchron sind, eine Herausforderung darstellen. Main async In diesem Artikel wird dieses Problem eingehend und die Ersatzmethode zum Erreichen von asynchronem Verhalten in der Konsolenanwendung erörtert.

Wohnheim

async In Visual Studio 2012 ist die -Methode als

verboten. In Visual Studio 2017 Update 3 (15,3) und höhere Versionen unterstützt die Sprache, so lange

oder Main, die Methode async Task. Auf diese Weise können Entwickler den folgenden Code schreiben: Task<T> async Main Diese Methode scheint den Hauptfaden zu blockieren, ähnlich der Verwendung von

. Vor der offiziellen Sprachspezifikation von C# 7.1 ist dieses Verhalten jedoch immer noch eine Hypothese.
<code class="language-csharp">class Program
{
    static async Task Main(string[] args)
    {
        Bootstrapper bs = new Bootstrapper();
        var list = await bs.GetList();
    }
}</code>

Die alternative Methode der asynchronen Konsolenanwendung GetAwaiter().GetResult()

Wenn die Methode nicht möglich ist, kann der Entwickler eine der folgenden alternativen Methoden anwenden:

Angeordneter Kontext:

Erstellen Sie eine angepasste "Hauptschleife", die mit async kompatibel für die Konsolenanwendung kompatibel ist. Dieser Zyklus wirkt als Behälter für asynchrone Methoden. Main

Verschärfen Sie den Hauptfaden:
    Behindern Sie den Hauptkonsolenfaden, bevor die asynchronen Arbeiten abgeschlossen sind. Dies kann in den folgenden Methoden implementiert werden:
  1. async, indem statt
  2. oder
  3. anstelle von oder verwendet werden, können Entwickler die
  4. -Packages vermeiden, die bei Verwendung dieser Methoden auftritt.
Kurz gesagt, obwohl die Methode
<code class="language-csharp">class Program
{
    static void Main(string[] args)
    {
        MainAsync(args).GetAwaiter().GetResult();
    }

    static async Task MainAsync(string[] args)
    {
        Bootstrapper bs = new Bootstrapper();
        var list = await bs.GetList();
    }
}</code>

eine direktere Methode für die asynchrone Konsolenanwendung bietet, ist sie nicht für die alte Version von Visual Studio geeignet oder wenn die GetAwaiter().GetResult() Wait() nicht geeignet ist Für eine bestimmte Implementierung können alternative Methoden verwenden. Result

Das obige ist der detaillierte Inhalt vonWie kann ich asynchrone Programmierung in C# -Konsole -Anwendungen implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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