异步控制器渲染数据

时间:2016-11-18 10:13:35

标签: c# asp.net-mvc asp.net-mvc-4 asynchronous model-view-controller

我曾经在web api应用程序中实现同步操作,并且异步获取数据我在客户端部分使用 AJAX 从api操作中获取数据。

然后我读到async controller,我需要知道渲染页面的生命周期

例如:

 public async Task<ActionResult> PWGasync()
    {
        ViewBag.SyncType = "Asynchronous";
        var widgetService = new WidgetService();
        var prodService = new ProductService();
        var gizmoService = new GizmoService();

        var widgetTask = widgetService.GetWidgetsAsync(); 
         await Task.Run(widgetTask);

        var pwgVM = new ProdGizWidgetVM( widgetTask.Result  );

        return View("PWG", pwgVM);
    }

视图是否会先获得数百,然后才会显示数据?

1 个答案:

答案 0 :(得分:1)

  

视图是否会首先获得数百,然后才会显示数据?

没有。 async不会更改HTTP协议。还有一个请求和一个响应。

  

异步和同步操作之间有什么区别?

async操作允许请求线程在await操作正在进行时返回到线程池。这样可以更好地利用线程池,从而实现更好的Web服务可伸缩性。