C#的非同步 async/await
同步方法:程式調用某個方法,需要等待執行完每一行後才能執行下一行的操作,這是許多程式語言預設的執行方法。
非同步方法:程式調用某個方法時,不做任何等待,在處理完成之前就返回該方法,繼續執行接下來的操作。
非同步控制流程
- 非同步方法
- 調用非同步方法
await(非同步等待)表達式在於修飾需要執行非同步方法,一個async方法中可以包含多個await。
使用async修飾字後,會改變函式結構,返回類型也會發生改變(void、Task、Task<T>、IAsyncEnumerable)
async和await沒有因果關係,async決定返回類型。
總結
- 在函數申明當中,async申明要放在返回類型之前。
- async申明只代表函數中可能會包含非同步操作,並不會創造非同步操作,只有在調用await的時候才會進行非同步的操作。
- async是一個上下文關鍵字,享用調用一個async函數,自己必須也是async函數
- async返回類型:void、Task、Task<T>、IAsyncEnumerable<T>。