dispatch_group_async

作者: 永远保持一颗进取心 | 来源:发表于2019-02-26 20:05 被阅读0次

这个是可以实现异步执行多个 block, 执行完之后执行某个Block的场景。
例如:需要加载完毕多张图片之后才显示。


#import "Group.h"

@interface Group()

@property (nonatomic, strong) dispatch_queue_t concQueue;
@property (nonatomic, strong) NSMutableArray *urlArray;

@end

@implementation Group

- (instancetype)init {
    if(self = [super init]) {
        //创建并发队列f
        _concQueue = dispatch_queue_create("concurrent_queue", DISPATCH_QUEUE_CONCURRENT);
        _urlArray = [NSMutableArray array];
    }
    return self;
}

- (void)handle {
    
    //创建一个 group
    dispatch_group_t group = dispatch_group_create();
    
    for(NSURL *url in _urlArray) {
        dispatch_group_async(group, _concQueue, ^{
            //图片加载
        });
    }
    dispatch_group_notify(group, dispatch_get_main_queue(), ^{
       //全部图片加载完成
    });
}

@end

相关文章

网友评论

    本文标题:dispatch_group_async

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