.Net非同步關鍵字async/await的最終理解

又見阿郎發表於2019-02-14

由於之前的專案中自己突然想試試非同步action,於是使用了一下,突然就對非同步action的執行流程以及原理及其好處產生了興趣,再參考了一些文章之後,就做了下歸類。

我們可以不需要太深入的理解底層,但是最基本的執行流程以及作用我們還是要清楚地。

1、async/await在程式中的的執行流程/順序:在你的程式碼塊裡使用這兩個關鍵字,你得知道它們在程式碼裡面的執行順序。

參考:

教你正確開啟async/await關鍵字的使用

C#中 Thread,Task,Async/Await,IAsyncResult 的那些事兒!

2、async/await構造一個非同步action,實現一個非同步的請求,其執行流程以及帶來的作用是什麼?

詳解 ASP.NET非同步

重新理解:ASP.NET 非同步程式設計(強烈推薦)

總的來講,非同步action的作用是提高了clr執行緒池裡面執行緒的吞吐量,增強了web應用程式的併發能力,因此在web專案中的高併發情況下應該多使用非同步請求。

3、對於FCL中提供的絕大多數非同步方法,其實現其實都是在呼叫時傳入的Func等委託引數中自己實現了非同步(async/await),而後在FCL中做了呼叫而已,並不是FCL內部實現了非同步。

 

相關文章