如何在控制器方法中等待异步结果?这似乎是微不足道的实施,但到目前为止我还没有找到一个很好的例子,干净优雅。以与启动它不同的控制器方法等待异步结果
这是问题所在。我有两个控制器方法。方法A和方法B.方法A通过TaskFactory启动一个长时间运行的进程,并在进程结束时使用ContinueWith更新缓存的值。 A和B之间有一些中间步骤。现在,当我到达方法B时,我需要检查缓存中的值。如果缓存中的值尚未更新,则需要等待x秒的时间并定期检查值是否已更新。
我宁愿在控制器中处理所有这些,所以客户端不必轮询结果(并且不得不重写控制器来处理轮询)。但我一直没有找到一种方法来实现控制器方法内的轮询,该方法在超时过期之前不会阻塞(我担心线程池饿死)。也许没有一个干净的实现,我可以在这里使用。如果投票是正确的还是唯一的答案,我将不得不接受它。
看来投票可能是我可以做的最好的事情给予的情况。 SignalR似乎是一个很好的选择,我只是不确定我想在应用程序的一个地方使用推式通知。 – 2012-08-01 17:40:21