码迷,mamicode.com
首页 > 编程语言 > 详细

线程GCD

时间:2015-12-09 13:53:24      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

 

#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;

    });

}

 

 

 

技术分享

线程GCD

标签:

原文地址:http://www.cnblogs.com/lcl15/p/5032495.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!