34
我想了解爲什麼以及何時應該使用async
控制器操作。最終,當我在其中使用await
時,它將等待操作完成以返回視圖。ASP.NET MVC4異步控制器 - 爲什麼要使用?
例如
public async Task<ActionResult> TryMe()
{
await SomeActionAsync();
return View();
}
在這種情況下,如果我使用async
或不使用async
,在行動將採取相同的時間執行。
如果我沒有試圖並行運行至少2個慢速操作(並不依賴於對方),我沒有看到任何使用控制器操作的理由。
如果我錯了,請糾正我。我想我在這裏錯過了一些東西。
因此,你所說的是我應該使用異步方法(如你所說的操作(DB,文件系統,WS等)來釋放線程池?因爲執行時間將保持不變當我嘗試運行這樣的操作時,總是使用異步是最好的做法嗎? – DorR 2013-03-03 20:02:33
@DorR:是的,注意並不是所有的操作都必須有異步實現,.Net 4.5中的大多數非CPU綁定方法現在都有異步但是第三方庫不太可能 – SLaks 2013-03-03 20:21:29
Steve Sanderson在ASP.NET中展示了異步功能:http://channel9.msdn.com/Events/TechDays/Techdays-2012-the -Nelandlands/2287此演示文稿還清楚地顯示了使用異步方法可能會帶來的性能優勢 – 2013-03-06 15:04:57