我有一个屏幕,我在其中进行了 2 次异步调用以获取两条不同的数据。我要做的是根据一组数据来显示或不显示其他数据的一部分。
是否可以这样做,因为我不知道哪个异步任务会先返回,因此在系统尝试确定是否显示第二条数据时不知道第一条数据是否可供系统使用?
有什么合理的解决方法吗?
谢谢!
我有一个屏幕,我在其中进行了 2 次异步调用以获取两条不同的数据。我要做的是根据一组数据来显示或不显示其他数据的一部分。
是否可以这样做,因为我不知道哪个异步任务会先返回,因此在系统尝试确定是否显示第二条数据时不知道第一条数据是否可供系统使用?
有什么合理的解决方法吗?
谢谢!
好吧,我相信您正在寻找信号量模式。
http://en.wikipedia.org/wiki/Semaphore_(编程)
这个想法是这样的:
有一个变量来维护异步调用的数量,在您的情况下为 2。然后,当任一调用完成时,递减此计数器并检查该值。如果计数器为 0,则您知道两个调用都已完成。如有必要,请记住将计数器重置为 2。