当我们使用串行队列时,只需将最后的回调主线程任务添加在所有任务的最后,顺序执行,便可回调。 但是当我们使用并行队列时候,就无法知道什么时候完成所有的子线程任务,
这时候,就得用到dispatch_group了。代码如下:
//我们同时执行几个异步任务,他们执行完了,我们有时候还得知道一下,,怎么办呢,这时候,就得用到dispatch_group了,如下编代码这样弄,到最后执行 dispatch_group_notify ,便可
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_group_t group = dispatch_group_create();
dispatch_group_async(group, queue, ^{
NSLog(@"开始执行1");
});
dispatch_group_async(group, queue, ^{
NSLog(@"开始执行2");
});
dispatch_group_async(group, queue, ^{
NSLog(@"开始执行3");
});
dispatch_group_notify(group, queue, ^{
NSLog(@"全部执行完成,必须在主线程更新UI!!!");
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"主线程更新UI完成。");
});
});
以上内容是小编给大家介绍的IOS中GCD的使用,希望对大家有所帮助!
注:相关教程知识阅读请移步到IOS开发频道。










