0
我正在做一個ASPNET MVC解決方案,我使用async/await來創建som外部請求。當任務完成時調用Task.WhenAll我有一個ContinueWith,在那裏我堅持一些數據到數據庫。 我對async/await有點新,我發現在ContinueWith實際調用之前,對我的操作的請求返回並更新了UI。這也意味着,如果我需要用戶身份,則必須在具有請求上下文時將其傳遞給繼續。 現在我需要做些特別的事情來確保服務器在返回ActionResult(aspnet mvc)之後實際處理請求嗎?我記得看到了有關RunInBackground的一些信息,但我無法再找到它。任務在請求返回後運行,有什麼顧慮?
在動作的代碼是一樣
await Task.WhenAll(tasks).ContinueWith(OnTagsMetaCollected, result);
return Json(result, JsonRequestBehavior.AllowGet);
首先是讓所有執行一些任務。當全部完成時,我想計算一些新的結果,這些結果在OnTagsMetaCollected內完成,並添加到結果中(列表) 修改後的結果從操作中返回。
我不確定這是最好的結構來解決這個問題,所以任何建議,我會歡迎:)。
所以我剛剛使用await進行了測試,我想我可能會做一些錯誤的事情,因爲在我的任務完成之前請求仍然返回。看到更新 –
啊,我剛剛刪除了continueWith,正如你所說的那樣,現在看起來工作正常,流程更加乾淨。 –