线程间通信
来源:互联网 发布:数据资产管理体系 编辑:程序博客网 时间:2024/06/05 05:19
1.performSelector
- (void)perform { NSString *urlString = @"http://pic13.nipic.com/20110415/1347158_132411659346_2.jpg"; //下载操作放到后台执行 [self performSelectorInBackground:@selector(loadImage:) withObject:urlString];}- (void)loadImage:(NSString *)urlString { NSURL *url = [NSURL URLWithString:urlString]; NSData *data = [NSData dataWithContentsOfURL:url]; UIImage *image = [UIImage imageWithData:data]; //下载完毕,回到主线程刷新 UI [self performSelectorOnMainThread:@selector(updataUI:) withObject:image waitUntilDone:YES]; //是否等待执行完毕 NSLog(@"loadOVer---%@", [NSThread currentThread]);}- (void)updataUI:(UIImage *)image { self.iconView.image = image;}
2.GCD
- (void)gcd { NSString *urlString = @"http://pic13.nipic.com/20110415/1347158_132411659346_2.jpg"; __weak typeof(self) weakSelf = self; dispatch_async(dispatch_get_global_queue(0, 0), ^{ NSURL *url = [NSURL URLWithString:urlString]; NSData *data = [NSData dataWithContentsOfURL:url]; UIImage *image = [UIImage imageWithData:data]; //回到主线程刷新 UI dispatch_async(dispatch_get_main_queue(), ^{ weakSelf.iconView.image = image; }); });}
3.NSOperation
- (void)operation { NSString *urlString = @"http://pic13.nipic.com/20110415/1347158_132411659346_2.jpg"; NSOperationQueue *queue = [[NSOperationQueue alloc] init]; __weak typeof(self) weakSelf = self; [queue addOperationWithBlock:^{ NSLog(@"%@", [NSThread currentThread]); NSURL *url = [NSURL URLWithString:urlString]; NSData *data = [NSData dataWithContentsOfURL:url]; UIImage *image = [UIImage imageWithData:data]; //回到主线程刷新 UI [[NSOperationQueue mainQueue] addOperationWithBlock:^{ NSLog(@"%@", [NSThread currentThread]); weakSelf.iconView.image = image; }]; }];}
0 0
- 线程同步--线程间通信
- 线程同步--线程间通信
- JAVASE线程---线程间通信
- JAVA线程-线程间通信
- 线程3:线程间通信
- 线程与线程间通信
- 线程间通信
- c#线程间通信
- VC 线程间通信
- 线程间通信 ManualResetEvent
- java 线程间通信
- android线程间通信
- VC 线程间通信
- 线程间通信方式
- QT---线程间通信
- Android线程间通信
- 线程间的通信
- linux线程间通信
- spring mvc controller间跳转 重定向 传参
- Java 拓扑图之设备面板图PortDemo
- [数据重现-文件系统原理精解与数据恢复最佳实践].(马林).影印版及光盘下载地址
- 说说基本的布局观
- Android中对Http的了解
- 线程间通信
- 实例解析MySQL性能瓶颈排查定位
- neuq oj 1044: 谭浩强C语言(第三版)习题5.8 C++
- 在ubuntu下安装mysql
- 看懂UML类图和时序图
- c++笔试题总结2
- 指针与数组关系
- Ubuntu14.04(32位)下安装使用docker
- zabbix基本概念