NSThread使用具体说明
来源:互联网 发布:爱淘宝抽一元红包 编辑:程序博客网 时间:2024/05/01 13:24
经常会遇到这样的问题——tableview中展示来自网络的图片,每一个cell中格式“图片+文字”,全部一起下载的时候容易阻塞UI线程,因此需要线程NSthread解决这个问题。
网上有很好的例子,其中一篇是 NSthread用法 http://www.cocoachina.com/bbs/simple/?t63541.html ,这篇开发讨论区中讨论了如何使用NSthread,以及谈论到dispatch_async和nsthread,dispatch_async中具体例子中为什么界面滞后的原因。
[NSThread detachNewThreadSelector:@selector(函数名) toTarget:self withObject:参数名]; withObject,这个后面的参数名是函数downloadImage后面自带的参数!要一一对应!
1)withObject带参数:
//开一个NSThread
-(void)test:(NSString *)ic{
[NSThread detachNewThreadSelector:@selector(downloadImage:) toTarget:self withObject:ic];
}
//下载图片
- (void)downloadImage:(NSString *)ic{
NSAutoreleasePool *pool =[[NSAutoreleasePool alloc] init];
if(图片为空){
网络下载图片过程
}
//回到主线程
[self performSelectorOnMainThread:@selector(updateImage) withObject:ic waitUntilDone:YES];
[pool release];
}
//完成下载图片,更新图片
-(void)updateImage{
更新图片到相应的界面的图片控件上
}
2)withObject不带参数:
//开一个NSThread
-(void)test::(NSString *)ic{
[NSThread detachNewThreadSelector:@selector(downloadImage) toTarget:self withObject:nil];
}
//执行方法
- (void)downloadImage{
NSAutoreleasePool *pool =[[NSAutoreleasePool alloc] init];
//回到主线程
[self performSelectorOnMainThread:@selector(updateImage) withObject:nil waitUntilDone:YES];
[pool release];
}
//完成下载图片,更新图片
-(void)updateImage{
}
- NSThread使用具体说明
- NSThread 使用
- swift开发多线程篇 - NSThread 线程相关简单说明(一些使用和注意点)
- NSThread 多线程使用,以及NSThread 停止
- AJAX的具体使用,和每个对象的意思说明。
- NSThread使用总结
- 使用NSThread起线程
- NSThread的使用
- NSThread介绍和使用
- NSthread线程使用
- NSThread的使用
- 使用NSThread创建线程
- NSThread的使用
- 学习:NSThread的使用
- NSThread的使用
- 88-NSThread的使用
- NSThread使用详解
- 多线程 - 03.NSThread使用
- 【JAVA IO】_BufferedReader笔记
- 给大学生学习ARM和FPGA的建议(周立功)
- node.js入门
- TCP flag注释
- 有限度地使用C++才能更好地维护世界和平
- NSThread使用具体说明
- sqlserver数据库 去除字段中空格,换行符,回车符(使用replace语句)
- MVC3增删改查基础方法
- 浏览器兼容之IE6\IE7\IE8专用CSS样式
- HotKey
- 获取内核对象的引用计数
- GreenSock动画平台学习笔记(一)TweenLite
- GreenSock动画平台学习笔记(二)TweenMax
- 实现、部署和调用Web Service