博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线程GCD
阅读量:6643 次
发布时间:2019-06-25

本文共 2142 字,大约阅读时间需要 7 分钟。

 

#import "ViewController.h"

 

@interfaceViewController ()

 

@end

 

@implementation ViewController

 

- (void)viewDidLoad {

    [superviewDidLoad];

    UIImageView *imageview1 = [[UIImageView alloc]initWithFrame:CGRectMake(30, 40, 100, 100)];

    [self.view addSubview:imageview1];

    

    UIImageView *imageview2 = [[UIImageView alloc]initWithFrame:CGRectMake(30, 150, 100, 100)];

    [self.view addSubview:imageview2];

    

    UIImageView *imageview3 = [[UIImageView alloc]initWithFrame:CGRectMake(30, 260, 100, 100)];

    [self.view addSubview:imageview3];

    

    UIImageView *imageview4 = [[UIImageView alloc]initWithFrame:CGRectMake(30, 370, 100, 100)];

    [self.view addSubview:imageview4];

    

    dispatch_async(dispatch_get_global_queue(0, 0), ^{

        NSData *data = [NSDatadataWithContentsOfURL:[NSURLURLWithString:@"http://www.yooyoo360.com/photo/2009-1-1/20090112132752467.jpg"]];

        UIImage *image = [UIImage imageWithData:data];

        dispatch_async(dispatch_get_main_queue(), ^{

            imageview1.image = image;

        });

    });

    

    //创建组:用于存放耗时操作

    dispatch_group_t group = dispatch_group_create();

    __block UIImage *image1,*image2,*image3;

    

    //将操作封装进组,第一个参数代表要存放操作的组名,第二个参数代表操作队列,block执行耗时操作

    dispatch_group_async(group, dispatch_get_global_queue(0, 0), ^{

        NSData *data = [NSDatadataWithContentsOfURL:[NSURLURLWithString:@"http://pic2.ooopic.com/10/81/58/62bOOOPICce.jpg"]];

        image1 = [UIImage imageWithData:data];

    });

    dispatch_group_async(group, dispatch_get_global_queue(0, 0), ^{

        NSData *data = [NSDatadataWithContentsOfURL:[NSURLURLWithString:@"http://www.downsc.com/vector_pic/shiliang_iecool/5/3/b_img/14430.jpg"]];

        image2 = [UIImage imageWithData:data];

    });

    dispatch_group_async(group, dispatch_get_global_queue(0, 0), ^{

        NSData *data = [NSDatadataWithContentsOfURL:[NSURLURLWithString:@"http://www.downsc.com/vector_pic/shiliang_iecool/5/2/b_img/13788.jpg"]];

        image3 = [UIImage imageWithData:data];

    });

     //监听一组操作,第一个参数代表要监听的组名,第二个参数代表一组操作完全结束后跳转到哪个队列,一般跳到主线程(dispatch_get_main_queue),block执行要进行的操作(一般用来更新UI),注意:此方法在组中的所有操作执行完毕后调用

    dispatch_group_notify(group, dispatch_get_main_queue(), ^{

        imageview2.image = image1;

        imageview3.image = image2;

        imageview4.image = image3;

    });

}

 

 

 

转载于:https://www.cnblogs.com/lcl15/p/5032495.html

你可能感兴趣的文章
php二次开发以及垃圾回收机制
查看>>
转载《Data Guard Broker基础》
查看>>
Redhat openstack6.0的安装
查看>>
交换机套装书获京东网双重重磅推荐
查看>>
演示:设置密码长度限制、密码加强
查看>>
Hadoop系列之三:函数式编程语言和MapReduce
查看>>
模版(Template)在框架API设计之妙用
查看>>
IP数据包经由路由转发的时候,源ip和目的IP是否改变
查看>>
Open-E DSS V7 应用系列之七 卷组和卷的管理
查看>>
Installing Oracle Database 18c Using RPM Packages
查看>>
AD恢复(3)使用AD回收站
查看>>
C++static成员函数和static成员的学习
查看>>
openvswitch在rhel61+kvm环境中的使用
查看>>
***S 2012 参数化报表 -- 利用拼接字符串来取代查询参数
查看>>
大容量导入和导出数据 -- 介绍
查看>>
用幻灯片做完整的“一站到底”抢答器
查看>>
创新创新再创新(3)
查看>>
一个简单的mysql服务检测启动脚本
查看>>
linux 下搭建BugFree
查看>>
DT02_设计思维的要素_假定(Hypothesis)
查看>>