【问题标题】:Are async/await usefull for web applications? [closed]async/await 对 Web 应用程序有用吗? [关闭]
【发布时间】:2013-01-12 17:36:53
【问题描述】:

我阅读了 C# 5.0 中的 Async 和 Await 关键字,它允许同时执行并行任务。 (这是我理解的)。

这种做法对 Web 应用程序有用吗?

在这里,我们有 AJAX 方法,允许在不阻塞 UI(浏览器)的情况下执行任务。

它们应该只用于异步 Web 服务吗?

您能否举例说明为什么/如何在 Web 应用程序中使用 async/await 关键字? (利用此功能)

【问题讨论】:

  • -1 没有建设性,但我会帮助你。 Watch this video
  • 回答标题:YES

标签: c# asp.net async-await


【解决方案1】:

asyncawait 这不是一个创新,我不是简单的语法糖围绕相同的异步调用处理模式,不同之处在于它使编写代码线性, 对于程序员来说更自然的方式。

所以,真正的问题是:我应该在哪里使用异步模式?

好吧,无论何时您需要一些 async 调用,或大量处理多个调用,或一些繁重的处理操作......或任何其他可以在宇宙中找到满足 async 需求的东西。

【讨论】:

    【解决方案2】:

    也许我能想到的最好的例子是从您的异步操作方法中调用一系列 Web 服务方法。例如:

    假设您在 Web 服务中定义了两个方法,Method1 和 Method2。如果每个方法都需要 1 秒,那么同步调用它们将需要 2 秒,但是以 async 方式调用它们将需要更少的时间。

     using (DataClient proxy = new DataClient())
                {
                    Task<Object> data1= proxy.Method1();
                    Task<Object> data2 = proxy.Method2();
    
                    await Task.WhenAll(new Task[] { data1, data2 });
    
                   //Completed
               }
    

    来自 MSDN:

    AsyncController 类使您能够编写异步操作方法。您可以对长时间运行的非 CPU 绑定请求使用异步操作方法。这可以避免在处理请求时阻止 Web 服务器执行工作。 AsyncController 类的典型用途是长时间运行的 Web 服务调用。

    链接:http://msdn.microsoft.com/en-us/library/ee728598(v=VS.98).aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-30
      • 2017-04-10
      • 1970-01-01
      • 2013-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多