我的控制器中有一个操作,其中有一个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
函数中的所有工作之后?