34
我想了解为什么以及何时应该使用async
控制器操作。最终,当我在其中使用await
时,它将等待操作完成以返回视图。ASP.NET MVC4异步控制器 - 为什么要使用?
例如
public async Task<ActionResult> TryMe()
{
await SomeActionAsync();
return View();
}
在这种情况下,如果我使用async
或不使用async
,在行动将采取相同的时间执行。
如果我没有试图并行运行至少2个慢速操作(并不依赖于对方),我没有看到任何使用控制器操作的理由。
如果我错了,请纠正我。我想我在这里错过了一些东西。
因此,你所说的是我应该使用异步方法(如你所说的操作(DB,文件系统,WS等)来释放线程池?因为执行时间将保持不变当我尝试运行这样的操作时,总是使用异步是最好的做法吗? – DorR 2013-03-03 20:02:33
@DorR:是的,注意并不是所有的操作都必须有异步实现,.Net 4.5中的大多数非CPU绑定方法现在都有异步但是第三方库不太可能 – SLaks 2013-03-03 20:21:29
Steve Sanderson在ASP.NET中展示了异步功能:http://channel9.msdn.com/Events/TechDays/Techdays-2012-the -Nelandlands/2287此演示文稿还清楚地显示了使用异步方法可能会带来的性能优势 – 2013-03-06 15:04:57