NSOperationQueue 设置依赖
2016-07-14 16:17
513 查看
NSOperationQueue*queue=[[NSOperationQueue alloc]init];
NSBlockOperation*blockOperation=[NSBlockOperation blockOperationWithBlock:^{
NSURL *url = [NSURL URLWithString:@"http://img.pconline.com.cn/images/photoblog/9/9/8/1/9981681/200910/11/1255259355826.jpg"];
NSData*data=[NSData dataWithContentsOfURL:url];
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
self.singleImageView.image=[UIImage imageWithData:data];
}];
}];
NSBlockOperation*blockOperation1=[NSBlockOperation blockOperationWithBlock:^{
NSURL *url = [NSURL URLWithString:@"http://img.pconline.com.cn/images/photoblog/9/9/8/1/9981681/200910/11/1255259355826.jpg"];
NSData*data=[NSData dataWithContentsOfURL:url];
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
self.secondImageView.image=[UIImage imageWithData:data];
}];
}];
__weak __typeof__(self) weakSelf = self;
NSBlockOperation*blockOperation3=[NSBlockOperation blockOperationWithBlock:^{
UIGraphicsBeginImageContext(self.bottomImageView.frame.size);
CGSize size= self.bottomImageView.frame.size;
[weakSelf.singleImageView.image drawInRect:CGRectMake(0, 0, size.width/2, size.height)];
[weakSelf.secondImageView.image drawInRect:CGRectMake(size.width/2, 0, size.width/2, size.height)];
UIImage *finalImage=UIGraphicsGetImageFromCurrentImageContext();
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
weakSelf.bottomImageView.image=finalImage;
}];
UIGraphicsEndImageContext();
}];
[blockOperation3 addDependency:blockOperation1];
[blockOperation3 addDependency:blockOperation];
[queue addOperation:blockOperation3];
[queue addOperation:blockOperation1];
[queue addOperation:blockOperation];
NSBlockOperation*blockOperation=[NSBlockOperation blockOperationWithBlock:^{
NSURL *url = [NSURL URLWithString:@"http://img.pconline.com.cn/images/photoblog/9/9/8/1/9981681/200910/11/1255259355826.jpg"];
NSData*data=[NSData dataWithContentsOfURL:url];
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
self.singleImageView.image=[UIImage imageWithData:data];
}];
}];
NSBlockOperation*blockOperation1=[NSBlockOperation blockOperationWithBlock:^{
NSURL *url = [NSURL URLWithString:@"http://img.pconline.com.cn/images/photoblog/9/9/8/1/9981681/200910/11/1255259355826.jpg"];
NSData*data=[NSData dataWithContentsOfURL:url];
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
self.secondImageView.image=[UIImage imageWithData:data];
}];
}];
__weak __typeof__(self) weakSelf = self;
NSBlockOperation*blockOperation3=[NSBlockOperation blockOperationWithBlock:^{
UIGraphicsBeginImageContext(self.bottomImageView.frame.size);
CGSize size= self.bottomImageView.frame.size;
[weakSelf.singleImageView.image drawInRect:CGRectMake(0, 0, size.width/2, size.height)];
[weakSelf.secondImageView.image drawInRect:CGRectMake(size.width/2, 0, size.width/2, size.height)];
UIImage *finalImage=UIGraphicsGetImageFromCurrentImageContext();
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
weakSelf.bottomImageView.image=finalImage;
}];
UIGraphicsEndImageContext();
}];
[blockOperation3 addDependency:blockOperation1];
[blockOperation3 addDependency:blockOperation];
[queue addOperation:blockOperation3];
[queue addOperation:blockOperation1];
[queue addOperation:blockOperation];
相关文章推荐
- opencv学习—HighGUI部分函数介绍及例子
- POJ1679 The Unique MST
- QueryPerformanceCounter实现Windows微秒级延时
- UITableView优化
- soapui 常用包和函数
- 多构造器下考虑选用Builder
- Web自动化框架LazyUI使用手册(7)--浏览器常用操作API
- Web自动化框架LazyUI使用手册(7)--浏览器常用操作API
- Arduino - 5V供电注意事项
- UESTC - 994 两个圆的公共面积
- NSOperationQueue 线程挂起,添加依赖
- iOS开发UI篇—UIWindow简单介绍
- KendoUI模板引擎 - 结合组件使用
- DOM对象与query对象说明及相互转换
- build.gradle
- TrueCrypt代码 之 几个文件操作函数,经常会用到
- Web自动化框架LazyUI使用手册(6)--8种控件对应的class,及可对其进行的操作
- Web自动化框架LazyUI使用手册(6)--8种控件对应的class,及可对其进行的操作
- Labelling Unsegmented Sequence Data with Recurrent Neural Networks(笔记)
- 【报错】"The constructor Notification(int, CharSequence, long) is deprecated