7

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

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

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

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

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

4

2 回答 2

4

也许我能想到的最好的例子是从您的异步操作方法中调用一系列 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

于 2013-01-29T08:02:38.663 回答
3

asyncawait这不是一项创新,我不是简单的语法糖围绕相同的异步调用处理模式,不同之处在于它使编码器以线性、更自然的方式编写代码

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

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

于 2013-01-29T07:50:31.003 回答