美文网首页swift
利用dispatch_group_create函数解决相关问题(

利用dispatch_group_create函数解决相关问题(

作者: 布呐呐u | 来源:发表于2019-08-16 17:40 被阅读0次

1)问题描述

有些时候,在项目中会出现如下场景,
常见的就是网络异步请求相关。
例如:A、B、C三个请求,
ABC都完成,并且成功再执行下一个动作。

2)解决方案

利用GCD中的dispatch_group_create函数解决问题
{
      //①创建一个group
      dispatch_group_t group = dispatch_group_create();
      //②等待网络请求A返回数据
      dispatch_group_enter(group);
        {
            //Method,A经过一系列的方法下载完成
            [self  download];
            dispatch_group_leave(group);
        }
      //③等待网络请求B返回数据
      dispatch_group_enter(group);
        {
            //Method,B经过一系列的方法下载完成
            [self  download];
            dispatch_group_leave(group);
        }
      //④等待网络请求C返回数据
      dispatch_group_enter(group);
        {
            //Method,C经过一系列的方法下载完成
            [self  download];
            dispatch_group_leave(group);
        }
      //⑤A、B、C全部完成,通知group可以执行下一步操作;
      dispatch_group_notify(group, dispatch_get_main_queue(), ^{
        //执行下一步操作 to do
       }

    //dispatch_group_enter(group);
    //dispatch_group_leave(group);
    //注:这两个函数是成对出现的,
      1)enter函数大于leave,说明某个下载未完成,不能执行dispatch_group_notify函数;
      2)leave函数大于enter,程序会崩溃。
      3)故,使用的时候要细心,多加小心!
 }

相关文章

网友评论

    本文标题:利用dispatch_group_create函数解决相关问题(

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