这个C#是否等待多余?

时间:2015-06-04 17:48:01

标签: c# ajax multithreading async-await

我在某种程度上理解线程,但在实践中我几乎没有经验。在查看我正在维护的代码时,似乎AWAIT没有提供任何好处。对此方法的所有调用都是通过AJAX进行的,并且只有在用户单击导出链接时才会发生。由于该方法没有其他功能,我认为AWAIT没有任何优势,而是想象它实际上引入了一些开销。我也相信所有其他用户点击导出会将此方法作为自己的线程输入,对吧?因此,这可能仅在单个用户快速点击多次导出时才有用?谢谢。

[PreventLogging]
    [HttpPost]
    public async Task<JsonResult> GetActivityReportCallsAsync([DataSourceRequest] DataSourceRequest request)
    {
        try
        {
            var result = await GetAllCallsAsync();
            return Json(result.ToDataSourceResult(request));
        }
        catch (Exception exc)
        {
            return JsonShowMessage(false, ServerMessageType.Error, exc.Message);
        }
    }

1 个答案:

答案 0 :(得分:8)

  似乎AWAIT没有提供任何好处

您可能需要查看我的async on ASP.NET MSDN article。在其中,我列举了一些关于async将对您的请求做什么或不做什么的常见误解。

总之,ASP.NET上的async / await用于可伸缩性,并假设您已经拥有可扩展的后端。它不会使任何个人请求运行得更快,或者提前返回,或类似的任何内容。