我开始学习MVC.net并关注this documentation。
在那里,解释了异步控制器将实现两个方法,比如操作被称为新闻,然后我们将有一个名为NewsAsync的方法,将返回void ,以及一个NewsCompleted,哪个将返回一个视图,并且一旦未完成的操作返回就会调用。
我担心的是,我真的没有看到在操作开始后无法返回视图的异步操作有任何意义。如果用户在异步回调返回之前无法从服务中看到任何反馈,那么为什么首先要使用异步控制器呢?
异步操作启动后有没有办法返回中间视图?我不必担心这种明显的限制吗? MVC.net中有什么我想念的东西吗?
答案 0 :(得分:3)
异步控制器的目的是促进线程的重用,这样如果你有一个特别长的运行请求阻塞资源,你就不会占用请求队列。它与向请求方返回信息无关。最后,他们发现异步控制器和普通控制器之间没有区别。
它不像是让它变得更加友好或其他什么;一个很好的例子就是如果你有一个请求开始渲染图像;传统上,当CPU呈现图像时,将消耗该请求线程。使用异步模式,您仍然可以呈现图像,但可以释放该线程以便在呈现完成之前为另一个Web请求提供服务,从而为您的服务器提供更高的吞吐量。
答案 1 :(得分:0)
一种策略是在客户端上设置轮询。生成结果后,将通知用户。