我正在制作一个 ASPNET MVC 解决方案,在其中我使用 async/await 来发出一些外部请求。当任务通过调用 Task.WhenAll 完成时,我有一个 ContinueWith,我将一些数据保存到数据库中。我对 async/await 有点陌生,我发现在实际调用 ContinueWith 之前,对我的操作的请求返回并更新了 UI。这也意味着如果我需要用户身份,则必须在具有请求上下文的同时将其传递给 Continue with。现在我需要做一些特别的事情来确保服务器在返回 ActionResult (aspnet mvc) 之后真正处理请求吗?我记得看过一些关于 RunInBackground 的东西,但我再也找不到它了。
Action中的代码就像
await Task.WhenAll(tasks).ContinueWith(OnTagsMetaCollected, result);
return Json(result, JsonRequestBehavior.AllowGet);
首先我做了一些任务,这些任务都被执行了。当一切都完成后,我想计算一些新结果,这些结果在 OnTagsMetaCollected 内部完成,并添加到结果(列表)中。修改后的结果从动作返回。
我不确定这是解决这个问题的最佳结构,所以我欢迎任何建议:)。