4

我开始学习 MVC.net 并遵循此文档

在那里,解释了异步控制器将实现两个方法,假设该操作称为 News,然后我们将有一个称为 NewsAsync 的方法,它将返回 void和一个 NewsCompleted,它将返回一个 view,这将是一旦未完成的操作返回时调用。

我担心的是,我真的看不出异步操作在操作开始后无法返回视图的任何意义。如果在异步回调返回之前用户将无法从服务中看到任何反馈,那么为什么首先要使用异步控制器呢?

异步操作开始后有没有办法返回中间视图?我是否不必要地担心这个明显的限制?MVC.net 我有什么遗漏吗?

4

2 回答 2

3

异步控制器的重点是促进线程重用,这样如果您有一个特别长时间运行的请求会阻塞资源,您就不会占用请求队列。它与向请求方返回信息无关。最后,他们认为异步控制器和普通控制器之间没有区别。

它不像它使它对 ajax 更友好或其他什么;一个很好的例子是,如果您有一个开始渲染图像的请求;传统上,该请求线程将在 CPU 渲染图像时被消耗。使用异步模式,您仍然可以渲染图像,但可以释放该线程来服务另一个 Web 请求,直到渲染完成,从而为您的服务器提供更大的吞吐量。

于 2012-04-16T18:56:36.153 回答
0

一种策略是在客户端上设置轮询。生成结果后,将通知用户。

于 2012-04-16T18:55:55.020 回答