【发布时间】:2017-08-10 08:38:13
【问题描述】:
我今天问了一个问题How can I run a method without waiting for long running process,我得到了一个很好的答案,ajax 解决了我的问题。 但是现在我的问题是为什么我还要使用 async await 关键字?
public async Task<ActionResult> DoSomeAsyncStuff()
{
var model = new MyModel();
await Task.Delay(20000);//My long-running process is getting data from an API with "HttpWebRequest".
model.Name = "Something";
//Assigning other model properties
return PartialView("_InnerView", model);
}
async await 关键字不是为了避免阻塞 UI 吗?但是在网络中,与 WinForms 不同,我在网络中看不到任何阻塞 UI。即使没有 async await 关键字,上面的代码和 ajax 也能很好地工作。所以有人可以解释我为什么要使用它们以及它们的用途是什么?
【问题讨论】:
-
一般来说:
ajax是client-side和async/wait是server-side异步操作的工作方式。阅读完整说明here -
@ChristianGollhardt 我的问题是关于它们在网络而不是应用程序中的好处。在网络中,我看不到任何阻塞的 UI 问题。所以我的问题与重复的问题不同。
-
@SteveCode 的区别在哪里?甚至 Ajax 也可以从并行处理中受益。
-
您需要阅读任务并行库。这可能是一个太大的概念,不适合一个合理的 Stack Overflow 答案。
标签: c# ajax asp.net-mvc async-await