在iOS中我有一个应用程序,我需要等待GCD队列中当前运行的块完成 . 我的印象是这行代码会做到这一点:
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{});
我从这里得到了这个提示:
http://www.fieryrobot.com/blog/2010/06/27/a-simple-job-queue-with-grand-central-dispatch/
据我了解,这行代码将阻止子序列执行,直到全局队列上运行的所有任务完成 . 在我的代码中,这似乎并没有发生 . 有人可以建议一种可以做到这一点的方法吗?
谢谢,
道格
1 回答
dispatch_sync()
技巧仅适用于串行队列,这是教程显示的内容 .dispatch_get_global_queue()
返回并发队列,请参阅it's documentation note:要处理全局并发队列,您应该使用提交块的组,也在该教程中提及,并等待整个组使用
dispatch_group_wait()
.