GCD 大中枢派发 简单应用实例

@interface ViewController ()

{
UIImageView* iv;
UIButton* btn;
UILabel* lbl;
} @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad];
iv=[[UIImageView alloc]initWithFrame:CGRectMake(, , , )];
lbl=[[UILabel alloc]initWithFrame:CGRectMake(, , , )];
btn=[[UIButton alloc]initWithFrame:CGRectMake(, , , )];
[btn addTarget:self action:@selector(loadData) forControlEvents:UIControlEventTouchUpInside];
btn.backgroundColor=[UIColor orangeColor]; [self.view addSubview:iv];
[self.view addSubview:lbl];
[self.view addSubview:btn];
} -(void)loadData
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, ), ^{
NSString* url=@"http://f4.topitme.com/4/e4/5e/1132253263b8b5ee44o.jpg";
NSData* data=[[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:url]];
UIImage* image=[[UIImage alloc]initWithData:data];
if (image) {
dispatch_async(dispatch_get_main_queue(), ^{
self->iv.image=image;
});
}
else
{
NSLog(@"下载错误");
}
});
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, ), ^{
NSString* str=@"";
if (str) {
dispatch_async(dispatch_get_main_queue(), ^{
self->lbl.text=str;
});
}
else
{
NSLog(@"下载错误");
}
});
}
上一篇:Centos 基础开发环境搭建之Maven私服nexus


下一篇:《转载》Python并发编程之线程池/进程池--concurrent.futures模块