簡體   English   中英

MVC3異步控制器,用於從實體框架異步加載

[英]MVC3 Async Controllers for async loading from Entity Framework

為了提高我們的MVC3應用程序的性能,我們希望將某些Controller標記為AsyncController。 我們使用EF 4.x(最新穩定版),並且需要一些建議,鏈接如何以正確的方式對EF進行異步調用。 如何處置實體等

如果可能的話,並使其有意義。 謝謝。

不要愚弄以為通過使控制器異步,您將提高性能。 在大多數情況下,您會使情況變得更糟。 異步控制器可以提高性能的唯一方案是利用IO /完成端口。 當您執行IO密集型操作(例如數據庫或Web服務調用)時,可能會發生這種情況。 僅通過使用ADO.NET BeginXXX和EndXXX的異步版本,您才能從異步控制器中受益。

如果僅創建一個異步控制器,並在其內部調用DataContext上的同步操作,那么您將失去所有好處,甚至使情況變得更糟。

可以使用異步控制器提高性能的另一個有用方案是,當您要並行化多個操作時。 僅當您正在執行的工作可以並行化時才可以使用。

我建議您看一下有關MSDN的以下文章 它是關於異步ASP.NET頁面的,但是概念在MVC(頁面是控制器)中完全相同。 在幕后,異步控制器使用相同的機制實現。 因此,在進入異步編程之前,請確保您已經非常了解IO /完成端口的概念。

另一個建議:不要做任何過早的優化。 從對應用程序進行負載測試開始,只有當您發現同步數據庫調用實際上是瓶頸時,才應查看異步控制器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM