是否可以在AsyncController
中使用异步和同步操作方法?这样做有什么缺点吗?
原因是异步操作对于耗时的操作有意义,但是在HTML中返回表单没有意义。
例如,我有一个生成文件的页面。返回带有输入的表单的action方法几乎没有逻辑,但接收POST的action方法,将其发送到另一个Web服务并中继响应需要一些时间,因此异步执行它是有意义的。
我可以将这些方法放在分离的控制器中,一个是同步的,另一个是同步的,但我想把它们放在一起。
干杯。
答案 0 :(得分:5)
是否可以在AsyncController中使用异步和同步操作方法?
是
这样做有什么缺点吗?
不是。
原因是异步操作对于耗时的操作有意义
耗时的操作 和 I / O密集型,以便您可以从I / O完成端口中受益。如果您在单独的线程中运行CPU耗时的操作,则严格来说无法从异步控制器中获益。相反,它会使事情变得更糟。
例如,我有一个生成文件的页面。动作方法 返回带有输入的表单几乎没有逻辑,但是 接收POST的动作方法,将其发送到另一个Web服务 并且中继响应需要一些时间,因此这样做是有意义的 异步。
好的,Web服务调用是I / O密集型操作=>您将从异步控制器中受益。在这种情况下,您可以在同一个异步控制器上执行这两个操作。