2015-06-09 93 views
2

我一直在試圖理解何時最好使用異步控制器vs處理單獨線程中的任務。異步控制器與ASP.NET多線程MVC

從研究,我相信當有多個任務來完成,在某些點上涉及的資源的單點進入異步最好使用。所以在asp.net MVC中的好處是可以返回池線程,這樣UI可以處理其他線程事件,而其他線程會在將其信息克隆回池線程之前繼續進行處理。

現在讓我們說這個任務是要下載一個文件從服務器..會創造我自己的線程產卵關閉和處理這種操作是任何有效的少?

採用多線程我可以處理數據併發,這是怎麼使用異步控制器做了什麼?

什麼是ASP.NET MVC一些例子,我應該使用異步控制器VS我自己的線程?

我新的ASP.NET MVC,並試圖理解這個概念更好,因爲我已經詳盡地搜索互聯網並不能得到兩者之間有着明顯的區別(用於ASP.NET MVC)。

+0

服務器上的異步IO主要用於減少線程數,因爲每個線程都消耗1MB的內存和一些操作系統資源。這真的是99%的故事(在服務器上!)。 – usr

回答

1

創建線程只有在您發回View的結果不依賴於線程的操作時纔有用。或者換一種說法,當涉及到耗時的處理過程時,線程是非常有用的,因爲視圖不需要關閉知識。我來翻過

一個潛在的陷阱是,如果你的控制器使用的會話數據IIS將阻止後續的AJAX調用,直到它已被處理。 Why would multiple simultaneous AJAX calls to the same ASP.NET MVC action cause the browser to block?

+0

其實這不是一個不正確的說法嗎?控制器將默認等待返回的視圖是否是同步的。 –

+0

感謝user3660362 ...你可以提供一個asp.net mvc的例子或場景,當你使用每種情況? – eaglei22