我正在看ASP.NET MVC 5模板,我注意到许多操作被标记为异步:
public async Task<ActionResult> Login(Loginviewmodel model,string returnUrl) { }
什么时候应该在MVC操作上这样做?当它包含访问数据库?
如果我在动作中调用存储库,我还应该使用Task来使其异步吗?
解决方法
你的问题的核心是:我什么时候应该让我的MVC动作异步?有关这个问题的讨论,请参阅
http://blogs.msdn.com/b/rickandy/archive/2009/11/14/should-my-database-calls-be-asynchronous.aspx。他仅谈论数据库,但他的观点结束了。
For database applications using async operations to reduce the number of blocked threads on the web server is almost always a complete waste of time.
人们告诉你如果可能,总是使用异步IO,不要被损害。异步现在就是愤怒。很多不合理的建议正在蔓延。