如何在控制器方法中等待異步結果?這似乎是微不足道的實施,但到目前爲止我還沒有找到一個很好的例子,乾淨優雅。以與啓動它不同的控制器方法等待異步結果
這是問題所在。我有兩個控制器方法。方法A和方法B.方法A通過TaskFactory啓動一個長時間運行的進程,並在進程結束時使用ContinueWith更新緩存的值。 A和B之間有一些中間步驟。現在,當我到達方法B時,我需要檢查緩存中的值。如果緩存中的值尚未更新,則需要等待x秒的時間並定期檢查值是否已更新。
我寧願在控制器中處理所有這些,所以客戶端不必輪詢結果(並且不得不重寫控制器來處理輪詢)。但我一直沒有找到一種方法來實現控制器方法內的輪詢,該方法在超時過期之前不會阻塞(我擔心線程池餓死)。也許沒有一個乾淨的實現,我可以在這裏使用。如果投票是正確的還是唯一的答案,我將不得不接受它。
看來投票可能是我可以做的最好的事情給予的情況。 SignalR似乎是一個很好的選擇,我只是不確定我想在應用程序的一個地方使用推式通知。 – 2012-08-01 17:40:21