首页 > 解决方案 > await 阻塞请求

问题描述

我的控制器中有一个动作,其中有一个async函数调用

 public  async Task<ActionResult> Subscribe(AspNetUser user, string newUploadPath)
 {
    //do some work
    await DocServiceImpl.CopyUserAllModels(user, newUploadPath);
    //do some work
    return RedirectToAction("List", "ClientDashboard");
 }

而且这个功能会上传很多文件,Azure CDN所以需要很长时间。

问题是发出这个请求的客户端必须等到CopyUserAllModels函数完成,因为客户端看到他的页面的所有等待时间都在浏览器中重新加载。

我试过根本不等待,并且没有使用await

DocServiceImpl.CopyUserAllModels(user, newUploadPath);

但我搜索过这是一次糟糕的体验,除此之外,在这种情况下,我发现部分文件根本没有上传,所以没有await它在我的情况下无法正常工作(我不能明白为什么)。

我的问题是:如何提前完成请求,然后在CopyUserAllModels函数中完成所有工作?

标签: c#asp.net-mvcasync-await

解决方案


推荐阅读