美文网首页程序员
iOS 使用dispatch_group_enter使多次网络请

iOS 使用dispatch_group_enter使多次网络请

作者: iOS大熊猫 | 来源:发表于2020-05-18 12:11 被阅读0次

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(@"接口全部请求完成");//刷新页面

    });

相关文章

网友评论

    本文标题:iOS 使用dispatch_group_enter使多次网络请

    本文链接:https://www.haomeiwen.com/subject/ifluohtx.html