在ASP.NET MVC中使用异步控制器的优势是什么?

6
使用异步控制器在ASP.NET MVC网站中有哪些优势?请使用简单的术语解释;我不是.NET专家。

简短回答:使您的网站更具响应性。如果您的用户在等待服务器处理大量内容时被困在空白屏幕前,他们会认为您的网站出现了故障并离开。 - Matt Burland
1个回答

4

1
你能提供一个“长时间运行的、非CPU绑定请求”的例子吗?操作方法应该返回内容,但是当它们需要在服务器返回“ViewResult”之前完成工作时,它们如何异步执行? - Omar
一个长时间运行的、非CPU绑定请求的例子可能是一个动态新闻聚合网站,它返回10个热门新闻网站的头条新闻:如果每个网站的平均响应时间为0.5秒,那么完成这个请求需要5秒钟...使用异步控制器,可以在大约0.5秒钟内完成。还有许多其他例子,有些比其他例子更合适。我不是MVC专家,但据我所知,ViewResult会阻塞直到所有10个异步事件完成...你可以在我回答中链接的文章中获得更多细节。 - Kiril
4
你所引用的异步文章已经过时。请参考http://www.asp.net/mvc/tutorials/mvc-4/using-asynchronous-methods-in-aspnet-mvc-4,该页面提供了与此问题相关的链接。 - RickAndMSFT
@Lirik - 你正在犯一个经典错误,混淆了并行性和异步性。它们有一些重叠之处,但并不相同。 - Erik Funkenbusch
3
异步操作直到所有处理完成后才返回响应。异步操作的特点在于,当您执行异步请求并开始执行某些操作(如Web请求或数据库访问)时,该操作可以放弃其线程池工作程序,以便服务其他用户的请求。一旦工作完成,就会启动一个新的线程池工作程序来完成余下的请求处理。最终将响应返回给客户端(如果没有进一步的等待)。异步操作具有更好的可扩展性,并使服务器的工作更加高效。 - Erik Funkenbusch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接