使用场景举例:
一个tableView的数据源由多个网络请求到的数据组合而成, 当所有网络请求结束之后才需要刷新tableView
使用gcd 中的group方法实现:
// 创建gcd group
dispatch_group_t serviceGroup = dispatch_group_create();
for (NSInteger i = 1; i < 5; i++) {
// 将任务放入 group中
dispatch_group_enter(serviceGroup);
// 网络任务
// 在block中将任务移出group
dispatch_group_leave(serviceGroup);
}
dispatch_group_notify(serviceGroup, dispatch_get_main_queue(), ^{
// 任务全部完成处理
NSLog(@"完成");
});
网友评论