Was ich nicht verstehe, ist das folgende Snippet from MSDN:Aus der Sicht des Aufrufers unterscheidet sich das Aufrufen einer asynchronen Methode vom Aufruf einer synchronen Methode.
Beachten Sie, dass das Verfahren nun mit dem neuen Asynchron-Schlüsselwort gekennzeichnet ist; Dies ist einfach ein Indikator für den Compiler, der es wissen lässt, dass im Kontext dieser Methode das Schlüsselwort erwartet als Punkt behandelt werden soll, wo der Workflow die Kontrolle an den Aufrufer zurückgibt und wieder wenn die zugehörige Aufgabe ist fertig.
Wie ist das anders als wie funktioniert nicht-async
Methoden?
Wenn ich
int x;
x = SomeNormalFunctionThatReturnsAnInt();
Console.WriteLine(x);
oder
int x;
Task<int> task = SomeAsyncFunctionThatReturnsAnInt();
x = await task;
Console.WriteLine(x);
dann aus der Sicht des Anrufers, die Reihenfolge der Ausführung ist genau das gleiche: ein int
namens x
definiert ist, Eine Funktion, die eine int
zurückgibt, wird ausgeführt, und wenn diese Funktion ausgeführt wird, wird der Rückgabewert auffestgelegt, die dann in die Konsole geschrieben wird.
Task.Delay dauert Millisekunden nicht Sekunden, wenn Sie 5 Sekunden warten wollten, wäre das Task.Delay (5000) –