2011-05-12 63 views
1

我知道異步庫使得異步實現在處理UI時非常容易。但是我無法看到它可以提高性能的任何服務器端用法。可以使用哪些服務器端場景等待提高性能?在服務器端使用await

+4

在現有的異步調用API上使用異步不會讓您的應用程序突然變得更高效,它只會使編寫和維護代碼變得更加可管理。這不是正確的問題。 – 2011-05-12 08:18:47

回答

3

Async在網絡場景中特別有用,因爲服務器之間的通信很少沒有延遲。向另一個網絡服務器(另一層,第三方REST服務)發出請求或者甚至查詢數據庫通常使用阻止調用來阻止當前線程執行任何工作,直到遠程調用完成。相反,通過遠程調用,您的當前線程將被釋放以處理其他請求,從而減少內存壓力(IIS使用每個線程256KB的堆棧空間)並增加潛在負載(更多並行任務可在線程用完之前運行) )。

ASP.NET的大多數基本管道工具使用IHttpHandler而不是IHttpAsyncHandler,這意味着它假定阻止行爲,但可以在ASP.NET中使用異步。

2

使用異步與使用現有異步調用API不會使您的應用程序突然變得更好,它只會使編寫和維護代碼更易於管理。這不是正確的問題。

+0

我以艱難的方式+1瞭解了它的真相 – TDaver 2011-06-09 07:42:17