1
如果我想在我的數據層使用TPL異步,我還必須在我的MVC控制器上使用Task<T>
嗎?網絡上的.NET異步 - 必須帶有異步控制器嗎?
換句話說,爲了使異步與.NET MVC一起工作,它必須從請求開始的時候開始執行,以便它能夠在更深的執行層上工作。或者,即使我正在使用同步控制器,在我的DAL/Web請求級別還有Task<T>
還有好處嗎?
如果我想在我的數據層使用TPL異步,我還必須在我的MVC控制器上使用Task<T>
嗎?網絡上的.NET異步 - 必須帶有異步控制器嗎?
換句話說,爲了使異步與.NET MVC一起工作,它必須從請求開始的時候開始執行,以便它能夠在更深的執行層上工作。或者,即使我正在使用同步控制器,在我的DAL/Web請求級別還有Task<T>
還有好處嗎?
如果你不使用異步控制器,你將不得不等待某個任務。在這一點上,主要優勢消失了:減少被阻塞的線程數量。
當然,如果您同時運行多個異步活動,情況並非如此。這會將被阻塞的線程從N減少到一個。 (如果N = 1沒有好處,只是損壞)。
請注意,默認情況下異步不會更快。它在ASP.NET中的主要目的是在極端情況下獲得可伸縮性 - 具有100多個併發請求。只有這樣它纔會更快或更高。
所以,如果你有一個「通常」的併發請求數量(如< 100),只需要同步,不用擔心所有這些。