参考案例
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSURLSession *session = [NSURLSession sharedSession];
dispatch_queue_t dispatchQueue = dispatch_queue_create("test.queue", DISPATCH_QUEUE_CONCURRENT);
dispatch_group_t dispatchGroup = dispatch_group_create();
// dispatch_group_async(dispatchGroup, dispatchQueue, ^(){
dispatch_group_enter(dispatchGroup);
NSURLSessionDataTask *task = [session dataTaskWithURL:[NSURL URLWithString:@"https://www.baidu.com"] completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSLog(@"got data from internet1");
dispatch_group_leave(dispatchGroup);
}];
[task resume];
// });
// dispatch_group_async(dispatchGroup, dispatchQueue, ^(){
dispatch_group_enter(dispatchGroup);
NSURLSessionDataTask *task2 = [session dataTaskWithURL:[NSURL URLWithString:@"https://www.baidu.com"] completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSLog(@"got data from internet2");
dispatch_group_leave(dispatchGroup);
}];
[task2 resume];
// });
dispatch_group_notify(dispatchGroup, dispatch_get_main_queue(), ^(){
NSLog(@"end");
});
}
自己实例
dispatch_group_t group = dispatch_group_create();
dispatch_queue_t queue = dispatch_queue_create("queue", NULL);
dispatch_group_enter(group);
WS(weakSelf);
dispatch_async(queue, ^{
[weakSelf requestRecommandGroup:group];
});
dispatch_group_enter(group);
dispatch_async(queue, ^{
[weakSelf requestProductListGroup:group];
});
dispatch_group_enter(group);
dispatch_async(queue, ^{
[weakSelf requestBannerGroup:group];
});
// if (!isRefresh) {
// dispatch_group_enter(group);
// dispatch_async(queue, ^{
// [weakSelf requestActivityDrawGroup:group];
// });
// }
dispatch_group_notify(group, queue, ^{
dispatch_async(dispatch_get_main_queue(), ^{
if ([weakSelf.ativityModel.imageType isEqualToString:@"1"]&&isRefresh ==NO) {
[_activityView showActivityDrawView];
}
[weakSelf hideActivity];
});
});
网友评论