这个问题是关于 Grand Central Dispatch 的,尤其是 dispatch_group_wait()
。
假设一个名为 group
的 dispatch_group
中有 10 个任务等待执行。
在其他地方,我有一个任务需要等待 group
中的任何任务完成才能执行。为了实现这一点,我使用了 dispatch_group_wait(group, DISPATCH_TIME_FOREVER)
。
为了区别于 group
中的任务,我将其称为 lonelyTask
。
如果在 lonelyTask
等待时另一个任务被添加到 group
中,它首先被执行,lonelyTask
或添加到 组
?换句话说,添加到 group
的任务是否在另一个任务等待执行时先于等待执行的任务“插队”,或者它们被调用的顺序是否保持不变?
我已经搜索了文档,但没能找到这个问题的答案...
最佳答案
dispatch_group_wait
和dispatch_group_notify
都在等待进入组的项数过渡到零。因此,如果您在原始十个任务全部完成之前将第十一个任务添加到组中,则调用 dispatch_group_wait
将等待所有十一个任务完成后再继续。
关于ios - dispatch_group_wait 是否允许插队?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30607991/