【发布时间】:2013-07-26 20:33:29
【问题描述】:
我正在制作一个 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 中完成,并添加到结果中(列表) 修改后的结果从action中返回。
我不确定这是解决这个问题的最佳结构,所以我欢迎任何建议:)。
【问题讨论】: