dispatch_group_async
2019-02-26 本文已影响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