1.用到的几个方法
dispatch_group_enter :通知 group,下个任务要放入 group 中执行了
dispatch_group_leave: 通知 group,任务成功完成,要移除,与 enter成对出现
dispatch_group_wait: 在任务组完成时调用,或者任务组超时是调用(完成指的是enter和leave次数一样多)
dispatch_group_notify: 只要任务全部完成了,就会在最后调用
//2、开启子线程的线程组
//一个线程组
dispatch_group_t groupE = dispatch_group_create();
//模拟网络请求1
dispatch_group_enter(groupE);
NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
//普通的afn 请求
[HttpHelperClient postReqeustWithURL:@"www.baidu.com"params:dicsuccessBlock:^(NSDictionary*returnDataDic) {
NSLog(@"接口11请求完成");
dispatch_group_leave(groupE);
}failureBlock:^(NSError*error) {
}showHUD:NO getOrPost:2];
//模拟网络请求2
dispatch_group_enter(groupE);
NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
[HttpHelperClientpostReqeustWithURL:@"www.baidu.com"params:dicsuccessBlock:^(NSDictionary*returnDataDic) {
NSLog(@"接口12请求完成");
dispatch_group_leave(groupE);
}failureBlock:^(NSError*error) {
}showHUD:NO getOrPost:2];
//模拟网络请求3
dispatch_group_enter(groupE);
NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
[HttpHelperClientpostReqeustWithURL:@"www.baidu.com"params:dicsuccessBlock:^(NSDictionary*returnDataDic) {
NSLog(@"接口13请求完成");
dispatch_group_leave(groupE);
}failureBlock:^(NSError*error) {
}showHUD:NO getOrPost:2];
//所有请求都成功以后刷新页面
dispatch_group_notify(groupE, dispatch_get_main_queue(), ^{
NSLog(@"接口全部请求完成");//刷新页面
});
网友评论