【问题标题】:How async await work in a web application异步等待如何在 Web 应用程序中工作
【发布时间】:2016-01-30 19:30:30
【问题描述】:

这可能是一个基本问题。我们如何在 MVC 应用程序中使用异步等待 Web api 调用?假设我在我的 mvc ajax 表单中使用提交按钮,并且在控制器中我有一个异步 Web api 调用,在这种情况下,我是否必须等待异步操作完成才能返回 ActionResult?

我希望我需要等到任务完成,因为我在客户端的 ajax 脚本需要结果。

请说明您在类似情况下的见解和经验

【问题讨论】:

    标签: jquery asp.net ajax async-await


    【解决方案1】:

    要真正实现异步,您需要在将响应发送回客户端之前等待响应。您的控制器可能类似于:

    public async Task<IHttpActionResult> Read()
    {
        var data = await _asyncMethod();
        return Ok(data);
    }
    

    所以在await 完成之前,响应不会立即返回给客户端。仅使用async/await 关键字不会创建新线程,而是告诉当前线程响应可能不会立即可用,因此不要阻塞等待它的线程。对于一个非常繁忙的控制器,这可以提高响应能力,因此控制器可以在不真正完成第一个请求的情况下响应其他请求,并且当等待的异步方法完成时,它会将响应发送回客户端。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-11
      • 2014-06-06
      • 2020-01-09
      • 1970-01-01
      • 1970-01-01
      • 2017-05-18
      • 2021-10-27
      相关资源
      最近更新 更多