Heim >Backend-Entwicklung >C++ >Wie rufe ich Async-Methoden ordnungsgemäß über die Hauptmethode in C# auf?
Aufrufen von Async-Methoden in Main: Eine umfassende Anleitung
Im Bereich der asynchronen Programmierung kommt es nicht selten vor, dass wir auf Situationen stoßen, in denen dies erforderlich ist Rufen Sie eine asynchrone Methode direkt von der Main-Methode aus auf. Um die Vorteile der asynchronen Programmierung nutzen zu können, ist es wichtig zu verstehen, wie dies erreicht werden kann.
Asynchroner Methodenaufruf in Main
Beachten Sie den folgenden Codeausschnitt:
<br>öffentlicher Unterricht test<br>{</p> <pre class="brush:php;toolbar:false">public async Task Go() { await PrintAnswerToLife(); Console.WriteLine("done"); } public async Task PrintAnswerToLife() { int answer = await GetAnswerToLife(); Console.WriteLine(answer); } public async Task<int> GetAnswerToLife() { await Task.Delay(5000); int answer = 21 * 2; return answer; }
}
Mehrere Ansätze
Es gibt mehrere Ansätze zum Aufrufen von Async Methoden aus der Main-Methode:
1. Asynchrone Hauptmethode (C# 7.1 und neuer)
Für C# 7.1 und neuere Versionen kann die Hauptmethode als asynchron markiert werden. Dies ermöglicht die direkte Verwendung von asynchronen Methoden innerhalb der Main-Methode, wie im folgenden Beispiel zu sehen ist:
<br>static async Task Main(string[] args)<br>{</p> <pre class="brush:php;toolbar:false">test t = new test(); await t.Go(); Console.WriteLine("finished"); Console.ReadKey();
}
2. Rufen Sie die „Wait“-Methode auf
Für frühere Versionen von C# kann die Wait-Methode verwendet werden, um den Thread zu blockieren, bis die asynchrone Methode abgeschlossen ist. Dieser Ansatz wird unten demonstriert:
<br>static void Main(string[] args)<br>{</p> <pre class="brush:php;toolbar:false">test t = new test(); t.Go().Wait(); Console.WriteLine("finished"); Console.ReadKey();
}
3. OnCompleted-Rückruf (Legacy-Ansatz)
In bestimmten Fällen müssen Sie möglicherweise einen OnCompleted-Rückruf verwenden, wie im ersten Codeausschnitt gezeigt. Dieser Ansatz kann jedoch zu Deadlocks führen und sollte nach Möglichkeit vermieden werden.
Optimaler Ansatz
Für C# 7.1 und neuer ist die Verwendung der asynchronen Main-Methode die bevorzugte Ansatz, da er den Code vereinfacht und die Notwendigkeit eines Callback-basierten Aufrufs überflüssig macht. Für frühere Versionen von C# kann die Wait-Methode verwendet werden, es ist jedoch wichtig, die möglichen Auswirkungen auf die Leistung zu beachten, die mit dem Blockieren des Threads verbunden sind.
Fazit
Aufrufen von asynchronen Methoden Die Hauptmethode kann durch verschiedene Techniken erreicht werden. Wenn Sie die verschiedenen Ansätze und ihre Auswirkungen verstehen, können Sie die optimale Lösung basierend auf Ihren spezifischen Anforderungen und der von Ihnen verwendeten C#-Version auswählen.
Das obige ist der detaillierte Inhalt vonWie rufe ich Async-Methoden ordnungsgemäß über die Hauptmethode in C# auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!