新舊版的Task的差異在於舊版會鎖定執行緒
下表是舊版與新版的Task的差異,其中,舊版的Task會鎖定執行緒。
舊版 | 新版 | 描述 |
task.Wait | await task | 等待一個作業的完成 |
task.Result | await task | 取得一個完成的作業的結果 |
Task.WaitAny | await Task.WhenAny | 等待所有的作業的其中任何一個完成之後 |
Task.WaitAll | await Task.WhenAll | 等待所有的作業都已經完成之後 |
Thread.Sleep | await Task.Delay | 暫停一段時間在繼續執行 |
Task constructor | Task.Run or TaskFactory.StartNew | 建立一個以程式設計師自行撰寫的程式碼為基礎的Task |
參考資料來源:
[1]Async and Await
http://blog.stephencleary.com/2012/02/async-and-await.html