GCD中dispatch_group的使用

2022-05-18  本文已影响0人  萤火驻守心间

dispatch_group可以将GCD的任务合并到一个组里来管理。本质相当于初始值为LONG_MAX的信号量,等待group中的任务完成其实是等待value恢复初始值。

使用场景:多张图片上传完成后刷新视图

思路:
1、将所有耗时操作放在group中,等全部操作完成回到主线程刷新UI。
2、当group内的block都执行完成时调用dispatch_group_notify,回到主线程刷新

dispatch_group_t group = dispatch_group_create();
    
        dispatch_group_async(group, dispatch_queue_create(0, 0), ^{
            for (int i=0; i<3; i++) {
                NSLog(@"任务%d",i);
                sleep(3);
            }
            NSLog(@"已执行完成");
        });
   
    dispatch_group_notify(group, dispatch_get_main_queue(), ^{
        NSLog(@"group已执行完成");
    });
上一篇下一篇

猜你喜欢

热点阅读