Heim >Backend-Entwicklung >C++ >Kann ich die Hauptmethode meiner Konsolenanwendung asynchron machen?
Beim Versuch, die Hauptmethode in der Konsolenanwendung auf asynchron zu setzen, kann ein Fehler auftreten: "Die Hauptmethode, die den Modifikator" Async "in der Hauptmethode der Konsolenanwendung nicht angeben kann".
Die Compiler -Grenzen
Historisch gesehen begrenzt der Visual Studio Compiler die Verwendung des asynchronen Modifikators auf der Hauptmethode. Dies soll die asynchrone Implementierung des natürlichen Synchronisationsverhaltens des Konsolenprogramms verhindern.
Die Unterstützung des asynchronen Haupts
Beginnend mit Visual Studio 2017 Update 3 (15,3) unterstützt C# die asynchrone Hauptmethode, solange sie Aufgabe oder Aufgabe zurückgeben. Dies ermöglicht die folgende Codestruktur:
Verhalten Verhalten
<code class="language-csharp">class Program { static async Task Main(string[] args) { // 异步代码在此处 } }</code>In der asynchronen Hauptmethode kann die Keyword -Anzeige "Warte" darauf warten, dass das Objekt (z. B. die Aufgabe) die Methode abgeschlossen und dann zur Methode zurückkehrt. In der Konsolenanwendung wird jedoch die Rückgabe der Hauptmethode aus dem Verfahren zurückgezogen.
Vermeiden Sie, dass das Verfahren
verstrickt istUm das Verlassen des Verfahrens zu verhindern, ist es erforderlich, einen Kontext bereitzustellen, der mit der asynchronen Kompatibilität für die Hauptmethode kompatibel ist. Dieser Kontext behält das Programm in einem Aktivitätszustand während des Betriebs des asynchronen Betriebs bei.
Die Kontextoption
NUGET -Bibliothek:
Verwenden Sie den Asynccontext in Nito.asyncex Nuget -Tasche.asynchrones CTP: gonerktheadaffinecontext im asynchronen CTP (falls verfügbar).
Das obige ist der detaillierte Inhalt vonKann ich die Hauptmethode meiner Konsolenanwendung asynchron machen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!