GCD 大中枢调度之group

最近吃了这个亏呀。
涉及到多个异步请求完成后,再刷新界面。
我想各位必有神通,我这里用的是GCD的派发组。
创建一个派发组,

dispatch_group_t group = dispatch_group_create();
再创建一个并发队列。
dispatch_queue_t queue = dispatch_queue_create("label", DISPATCH_QUEUE_CONCURRENT);

dispatch_group_async(group, queue, ^{
//必须先进入组
dispatch_group_enter(group);
//根据你的任务,这里加入一个异步操作,如网络请求。

完成后调用离开组
dispatch_group_leave(group);
});
dispatch_group_async(group, queue, ^{
//必须先进入组
dispatch_group_enter(group);
//根据你的任务,这里加入另一个异步操作,如网络请求。

完成后调用离开组
dispatch_group_leave(group);
});
dispatch_group_async(group, queue, ^{
//必须先进入组
dispatch_group_enter(group);
//根据你的任务,这里加入第N个异步操作,如网络请求。

完成后调用离开组
dispatch_group_leave(group);
});

//当所有组都退出时,会调用这里。然后在主线程刷新你的界面。
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];//刷新你的界面。
});
});

千万要小心操作,必须先进入组,最后离开组。

全部评论

相关推荐

抓蛙得要春天:在我眼里看起来干净整洁,排版基本没什么问题,在HR看来,哦对了,HR不会看
点赞 评论 收藏
分享
专业嗎喽:个人信息名字太大,合到电话邮箱那一栏就行,有党员写过党,剩下其他全删,站空太大了 把实习经历丰富,放最前面,然后是个人评价,技能之类的,然后是学校信息。项目经历最后面,可以就选一个自己擅长的。 现在是学校不是92就扣分的,没必要放前面。 然后现在看重实习经历>竞赛经历(校园经历)>课程项目经历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务