我有一个屏幕,我进行2次异步调用以获取两个不同的数据。我想要做的是取决于一组数据,以显示或不显示其他数据的一部分。
是否可以这样做,因为我不知道哪个异步任务将首先返回,因此,当它尝试确定是否显示第二个数据时,不知道系统是否可以使用第一个数据一块数据?
有没有合理的解决方法?
谢谢!
答案 0 :(得分:1)
好吧,我相信你正在寻找信号量模式。
http://en.wikipedia.org/wiki/Semaphore_(programming)
这个想法是这样的:
有一个变量保持异步调用的数量,在你的情况下这是2.然后,当任一调用完成递减此计数器并检查该值。如果计数器为0,则表示两个呼叫均已完成。如有必要,请记得将计数器重置为2.