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

iOS 使用dispatch_group_enter使多次网络请

作者: 刘_小_二 | 来源:发表于2020-08-07 09:24 被阅读0次

    1.用到的几个方法

    • 通知 group,下个任务要放入 group 中执行

      dispatch_group_enter
      
    • 通知 group,任务成功完成,要移除,与 enter成对出现

      dispatch_group_leave:
      
    • 在任务组完成时调用,或者任务组超时是调用(完成指的是enter和leave次数一样多)

      dispatch_group_wait
      
    • 只要任务全部完成了,就会在最后调用

      dispatch_group_notify
      

      2.开启子线程的线程组

      线程1

      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

      //模拟网络请求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

       //模拟网络请求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];
      
      

      End:所有请求都成功以后刷新页面

          //所有请求都成功以后刷新页面
          dispatch_group_notify(groupE, dispatch_get_main_queue(), ^{
              NSLog(@"接口全部请求完成");//刷新页面
          });
      

    相关文章

      网友评论

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

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