[网络和多线程]5、线程通信
来源:互联网 发布:pcb线路板软件下载 编辑:程序博客网 时间:2024/06/10 06:13
- 1个线程传递数据给另1个线程
- 在1个线程中执行完特定任务后,转到另1个线程继续执行任务
// 子线程返回主线程可以用这个方法
- (void)performSelectorOnMainThread:(SEL)aSelector
withObject:(nullable id)arg waitUntilDone:(BOOL)wait;
- (void)performSelector:(SEL)aSelector onThread:(NSThread *)thr
withObject:(nullable id)arg waitUntilDone:(BOOL)wait NS_AVAILABLE(10_5, 2_0);
[实例]
// 触摸后开始下载图片,并显示
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
// 下载图片到本地,下载费时间后台开启线程进行下载
[self performSelectorInBackground:@selector(downLoadImage) withObject:nil];
}
/**
* 子线程,完成下载图片的任务。
*/
- (void)downLoadImage {
// iOS9中的http请求全部改用https,若要http必须修改info.plist文件
// NSAppTransportSecurity -- 添加字典
// NSAllowsArbitraryLoads -- 添加item 设置值为 YES
NSURL *url = [NSURL URLWithString:@"http://a3.qpic.cn/psb?/76485577-
db8b-4a97-9c1e-e9d919af5bc5/5bQwZ7UhPw9GFhw3RNb*C8FlavddPlGHIrXehxNIHvw!
/b/dB4BAAAAAAAA&ek=1&kp=1&pt=0&bo=gAJxBAAAAAAFANQ!&sce=0-12-12&rf=viewer
_311"];
NSData *data = [NSData dataWithContentsOfURL:url];
// 更新、显示UI界面一定要在主线程否则不安全
UIImage *image = [UIImage imageWithData:data];
// 回到主线程显示图片
[self performSelectorOnMainThread:@selector(displayImage:)
withObject:image waitUntilDone:NO];
}
/**
* 主线程,设置图片
*/
- (void)displayImage: (UIImage *)image {
[self.imageView setImage:image ];
}
设置图片可以用下面的代码一行搞定
// 回到主线程显示图片
[self.imageView performSelectorOnMainThread:@selector(setImage:)
withObject:image waitUntilDone:NO];
- [网络和多线程]5、线程通信
- 多线程-5-线程通信
- 网络多线程-NSOperation线程间通信
- 网络多线程-NSThread实现线程间通信
- 网络多线程-GCD线程间通信
- 多线程-线程间通信和等待唤醒
- 生产者和消费者多线程--线程间通信
- 黑马程序员---多线程和网络通信
- 简单多线程和网络通信模拟聊天
- VC++多线程编程-线程间的通信和线程同步
- linux 多线程的线程控制和线程通信
- [网络和多线程]4、线程同步
- 多线程和网络通信实现的简单多线程上传
- 多线程(5)—线程通信
- 多线程之线程通信
- 多线程之线程通信
- 多线程线程间通信
- java多线程线程通信
- [网络和多线程]1、iOS中的进程、线程
- [网络和多线程]2、pThread 的基本使用方法(不推荐使用)
- [网络和多线程]3、NSThread的基本使用方法
- [网络和多线程]4、线程同步
- 用ajax跨域访问通过php的问题,解决方法
- [网络和多线程]5、线程通信
- Mac - gdb配置
- 再谈ASP.NET第七 - 跨应用、跨服务器的表单验证
- 搞个这样的APP要多久?
- Web性能优化:What? Why? How?
- 我是如何在SQLServer中处理每天四亿三千万记录的
- CQRS架构简介
- 完美解决Android SDK Manager无法更新
- JSONobject的使用方法