我需要在我的 Controller 中为长时间运行的外部 API 调用实现异步操作。
看了一些教程,我实现了这样的方法:
[AsyncTimeout(200)]
public async Task<ActionResult> DoAsync()
{
// Execute long running call.
return View();
}
我的问题是,这是否足以构成真正的非 block 异步?我还需要应用 await 运算符吗?如果需要,我应该怎么做?
最佳答案
要编写非阻塞异步代码,您需要执行某种现有的非阻塞异步操作,例如Task.Delay()
,或者异步网络或文件IO。
简而言之,await
关键字consumes异步;它不会创建它。
如果您没有任何实际的异步工作要做,await
对您没有任何好处。
关于c# - 我应该将 await 与 async Action 方法一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22277591/