【发布时间】:2017-03-24 17:07:42
【问题描述】:
我试图弄清楚如何在我的 Asp.Net MVC 中使用 C# 中的 async/await。 要点似乎是它有助于 asp.net 在您进行 IO 时从工作池中释放线程(以便它们可以处理其他东西)。为此,您必须将执行 IO 调用的方法中的 async/await 修饰符提升到控制器操作(最好只有几层)。
在不将异步/等待提升到我的控制器的情况下使用此功能有什么意义吗? (例如,通过在调用 Async 方法后添加 Task.Wait)。
【问题讨论】:
-
如果您也基本上手动执行主机系统为异步代码执行的相同操作,即在等待时执行其他任务,则它可能会有所帮助。这可能相当复杂,但可行。异步真的没有什么魔力,它主要是一种允许顶级消费代码做其他事情而底层基础设施代码等待完成的方法。主机系统在顶层支持它,但您的代码也可以。但是,如果您只是简单地将异步操作“掩盖”在同步操作之后,那么您实际上就是在否定这种好处。