c# - 这个 C# await 是多余的吗?

标签 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);
        }
    }

最佳答案

it seems that the AWAIT provides no benefit

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

总而言之,ASP.NET 上的async/await 是为了可扩展性,并假定您已经拥有可扩展的后端。它不会使任何个人请求运行得更快,或更早返回,或类似的事情。

关于c# - 这个 C# await 是多余的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30650720/

相关文章:

javascript - 将 Ajax 与动态字段结合使用

java - Request Dispatcher 导致 jQuery 的 $.get 提醒页面文本

java - 我无法用 if 语句停止线程

ios - NSOperation 管理一系列函数

c# - WPF - 通用 IValueConverter?

c# - 将 List<int> 拆分为连续数字组

c# - Expression.Call 中的 ToUpper()

javascript - 使用动态内容动态复制 div

multithreading - 在grails应用程序中使用后台线程在mysql数据库中插入数据

c# - 如何根据 C# 运算符从源代码中标记语法