首页 > 代码库 > GCD-调度组
GCD-调度组
代码比较简单就不放在git上了,直接粘出来。
/* 在iOS开发中,我们经常需要需要监听多个异步任务全部完成后的回调。此时需要用到调度组处理 场景:使用异步下载多张图片的时候,可能需要下载完成全部图片后才能计算image的高宽来布局页面。等等 */ #import "ViewController.h" @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; #warning 注意事项: /* 1.dispatch_group_enter(group) 与dispatch_group_leave(group) 必须配对使用!!! 2.如果 dispatch_group_leave(group) 配对少了一个,则dispatch_group_notify 将永远的等待下去不走回调 3.如果 dispatch_group_enter(group) 配对少了一个,则会造成程序的crash */ //1>创建一个调度组 dispatch_group_t group = dispatch_group_create(); //2.使用调度组 dispatch_group_enter(group); dispatch_async(dispatch_get_global_queue(0, 0), ^{ NSLog(@"%@ --- 执行了任务1",[NSThread currentThread]); dispatch_group_leave(group); }); dispatch_group_enter(group); dispatch_async(dispatch_queue_create("111", DISPATCH_QUEUE_CONCURRENT), ^{ NSLog(@"%@ --- 执行了任务2",[NSThread currentThread]); dispatch_group_leave(group); }); //3>调度组监听,监听结果在设置的dispatch_get_main_queue 中回调 dispatch_group_notify(group, dispatch_get_main_queue(), ^{ NSLog(@"%@ --- 监听到了任务全部执行完毕",[NSThread currentThread]); }); } @end
GCD-调度组
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。