MVC C#中的异步控制器,有什么意义吗?

时间:2017-03-19 07:03:21

标签: asynchronous model-view-controller async-await

我一直在使用async / await一段时间了。我知道有一些真正的好处。我发现的最大好处是在对API进行多次查询并处理所有帖子之后再等待之前的帖子完成。

但我的问题是关于异步控制器,它们有什么好处。

对于这个例子,我将使用sharepoint,但它可能与任何单个调用API有关。

同步动作如下所示:

public ActionResult LoadUsers(){
{
       var camlQuery = CamlQuery.CreateAllItemsQuery();
       var listItems = List.GetItems(camlQuery);
       ClientContext.Load(listItems);
       ClientContext.ExecuteQuery(); //This command will make POST call to api

       return Json(id=listItems.id);
}

现在我对同一件事的异步调用看起来像是:

public async Task<ActionResult> LoadUsers(){
{
       var camlQuery = CamlQuery.CreateAllItemsQuery();
       var listItems = List.GetItems(camlQuery);
       ClientContext.Load(listItems);
       await Task.Run(() => ClientContext.ExecuteQuery()); //This command will make POST call to api

       return Json(id=listItems.id);
}

在这种情况下有什么好处吗?这两个操作都将在同一位置阻止,并在返回API的响应后继续。

0 个答案:

没有答案