利用线程组请求多个网络, 等多个网络请求成功再回到主线程刷新UI

利用线程组请求多个网络, 等多个网络请求成功再回到主线程刷新UI

关键函数

dispatch_group_create() // 创建线程组
dispatch_group_enter  // 进入线程组
dispatch_group_leave // 离开线程组
dispatch_group_notify // 异步任务全部执行完毕

PS: dispatch_group_enterdispatch_group_leave必须成对出现, 否则会崩溃

Example

- (void)testGroup {
    dispatch_group_t group = dispatch_group_create();
       
    dispatch_group_enter(group);
    [self request1Success:^{
        dispatch_group_leave(group);
    }];
    dispatch_group_enter(group);
    [self request2Success:^{
        dispatch_group_leave(group);
    }];
    
    dispatch_group_notify(group, dispatch_get_main_queue(), ^{
        NSLog(@"全部请求完成, 刷新UI");
    });
}

// 第1个网络
- (void)request1Success:(void(^)(void))success {
    NYLReq *req = [[NYLReq alloc] initWithConsultID:self.consultID];
    [req gddStartWithCompletionBlockWithSuccess:^(id returnData) {
        if(success) {
        	success();
        }
    }];
}

// 第2个网络
- (void)request2Success:(void(^)(void))success {
    NYLReq *req = [[NYLReq alloc] initWithConsultID:self.consultID];
    [req gddStartWithCompletionBlockWithSuccess:^(id returnData) {
	   if(success) {
        	success();
        }
    }];
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值