c# - 我应该将 await 与 async Action 方法一起使用吗?

标签 c# asp.net-mvc multithreading asynchronous async-await

我需要在我的 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/

相关文章:

c# - 从 Controller 运行种子方法

javascript - MVC字数限制

php - 启用线程安全的服务器 php

c# - 为什么 Guid 列被删除?

C# databound ComboBox 更改其他控件中的数据

asp.net-mvc - 在不创建角色/用户身份验证的情况下查看 elmah 日志

c++ - 每 X 秒运行一个函数 C++

c# - 如何注册所有类型的接口(interface)并统一获取它们的实例?

c# - 如何避免在布局页面中使用 "using System.Web.Optimization"

C++11 线程 - 从类内部启动无限工作线程