我有一个 Silverlight 应用程序,它使用操作从模型中获取数据(它再次从 WCF 服务中获取数据)。
我需要以某种方式同步两个 ActionCallbacks,或者等待它们,然后执行一些代码。
示例:
_model.GetMyTypeList(list =>
{
MyTypeList.AddRange(list);
});
_model.GetStigTypeList(list =>
{
StigTypeList.AddRange(list);
});
doSomethingWhenBothHaveReturned();
我知道我可以使用计数器来跟踪返回了多少,但是没有更好的方法吗?
编辑: user24601 有一个很好的答案,但 CountdownEvent 在 silverlight 中不存在,还有其他好的想法吗? :)
最佳答案
是的,您需要一个计数器。 “更优雅”的解决方案是使用倒计时事件:
using (CountDownEvent countDownEvent = new CountDownEvent(2))
{
_model.GetMyTypeList(list =>
{
MyTypeList.AddRange(list);
countDownEvent.Signal();
});
_model.GetStigTypeList(list =>
{
StigTypeList.AddRange(list);
countDownEvent.Signal();
});
countdownEvent.Wait();
doSomethingNowThatWereComplete();
}
关于c# - 在 Silverlight 中同步操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8879870/