2012-05-11 15 views
1

使用MVC 4.0 Web Api我有一個長時間運行的數據庫查詢,它正在異步運行,在它完成之前,控制器完成其「獲取」或「後期」操作。這完全如預期/通緝。在MVC 4.0 Web Api中早期產生數據給客戶端

但是,雖然看起來MVC已將數據發回到客戶端,但在長時間運行的查詢完成之前,沒有實際發送任何數據。

有沒有什麼辦法可以強制數據提前「收益」給客戶端,甚至是創建和傳輸新的響應?

+0

如果你的查詢需要很長時間,你怎麼做早期的yield? – Aliostad

+0

嗨Aliostad。重點是我不需要查詢的結果 - 我只想開火併忘記,並且立即向客戶返回響應(說查詢已開始)非常重要。 – user1372718

回答

1

的一點是,我不需要從查詢的結果 - 我只是 想火和忘記,它返回一個響應 (話說查詢已開始)到客戶端馬上

很重要

如果是發射後不管,你並不需要將結果發送到客戶端,只需啓動任務

Task.Factory.StartNew(() => db.DoThatQueryThatBroughtDownChicago()); 

,並返回一個字符串,一個JSON結果說:「任務已啓動」。

+0

啊,對,謝謝。我會給它一個去! – user1372718