我不明白的是下面的代碼片段from MSDN:從調用者的角度來看,如何調用與調用同步方法不同的異步方法?
注意,這個方法現在標有新的異步關鍵字;這是 僅僅是編譯器的一個指示器,它讓它知道在該方法的 上下文中,關鍵字await將被視爲點 ,其中工作流將控制權返回給其調用方,並在關聯任務時再次提取 完成。
與非async
方法的工作方式有何不同?
如果我
int x;
x = SomeNormalFunctionThatReturnsAnInt();
Console.WriteLine(x);
或
int x;
Task<int> task = SomeAsyncFunctionThatReturnsAnInt();
x = await task;
Console.WriteLine(x);
然後從呼叫者的角度看,執行的順序是完全相同:一個int
名爲x
定義,運行返回int
的函數,並且當該函數完成運行時,其返回值設置爲x
,然後寫入控制檯。
Task.Delay需要幾毫秒而不是幾秒鐘,如果你想等待5秒鐘,這將是Task.Delay(5000) –