So, hier ist das Szenario:Wenn ich eine asynchrone Methode erwarte, wird sie synchron?
static async void Main(string[] args)
{
await AnAsyncMethod();
}
private static async task<bool> AnAsyncMethod()
{
var x = await someAsyncMethod();
var y = await someOtherAsyncMethod();
return x == y;
}
Ist „someAsyncMethod“ und „someOtherAsyncMethod“ synchron laufen, weil wir await verwenden, oder sie sind beide asynchron in der Reihenfolge ausgeführt, dass sie ausgeführt werden?
UPDATE
die Antwort unter die besagt, dass die erwartete Asynchron-Methoden laufen nacheinander gegeben, was der Zweck in erster Linie asynchrone Aufrufe der Vornahme dieser Methode wäre, wenn wir gehen, um nur die Ausführung zu stoppen und warten Sie die Rückgabewerte der Methode? Ich habe gesehen, dass native Apps in der Vergangenheit auf async warten, um den UI-Thread freizugeben, aber gibt es noch andere Gründe, warum dieses Design wünschenswert wäre?
kleine Bemerkung am Rande 'Main' kann' nicht await' verwenden als sich als 'async' – Jamiec
oben auf @Jamiec Kommentar nicht markiert, wenn Sie eine andere eine andere Klasse erstellen und dort, dass die Asynchron-Methode setzen, können Sie dann rufen in Ihrer Main-Methode, 'new SomeClass(). AnAsyncMethod.Wait();' und es wird asynchron passieren –
Mein Verständnis ist, dass someAsyncMethod vollständig fertig wäre, bevor SomeOtherAsyncMethod würde beginnen. – Biscuits