[iphone开发多线程之]IPhone的多线程编程初体验
2010-07-26 23:48
453 查看
来源:代码人生(http://aminby.net/code-life/)
流程大概如下:
1. 创建一个线程
2.线程里做两件,一件是后台处理耗时间的活(dosomethinglongtime),另一件是更新UI(UpdateUI)
3. 那UpdateUI的数据怎么来呢?
4.这样就完成了一个大概的流程,但是UpdateUI里不能用while(1),不然主线程会堵在UpdateUI的函数里,怎么办呢? Google了一个方法, UpdateUI的方法做了一下修改
这样的意思, 如果没线程没结束,过0.2秒再回到这个函数更新界面, 如此循环, 直到结束.
以上IPhone多线程编程的一种方法, 下一篇就讲一下用NSOperation和NSOperationQueue来实现.
流程大概如下:
1. 创建一个线程
[NSThread detachNewThreadSelect:@selector(BeginThread) toTarget:selft withObject:nil];
2.线程里做两件,一件是后台处理耗时间的活(dosomethinglongtime),另一件是更新UI(UpdateUI)
-(void) BeginThread{ [self performSelectorInBackgroud:@selector(dosomethinglongtime) withObject:nil]; [self perfomSelectorOnMainThread:@selector(UpdateUI) withObject:nil watUntilDone:NO]; }
3. 那UpdateUI的数据怎么来呢?
-(void)dosomethinglongtime{ // 修改共享变量 varProgress, varText等等 } -(void)UpdateUI{ // 获得共享变量 varProgress, varText等等, 显示在界面上 }
4.这样就完成了一个大概的流程,但是UpdateUI里不能用while(1),不然主线程会堵在UpdateUI的函数里,怎么办呢? Google了一个方法, UpdateUI的方法做了一下修改
-(void)UpdateUI{ // 获得共享变量 varProgress, varText等等, 显示在界面上 if(!finished) [NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(UpdateUI) userInfo:nil repeats:NO]; }
这样的意思, 如果没线程没结束,过0.2秒再回到这个函数更新界面, 如此循环, 直到结束.
以上IPhone多线程编程的一种方法, 下一篇就讲一下用NSOperation和NSOperationQueue来实现.
相关文章推荐
- iPhone开发【十五】多线程开发之NSThread——异步下载图片
- IOS开发/iphone开发多线程
- iPhone开发多线程使用与注意事项
- iPhone开发进阶(11)--- 多线程的使用与注意事项
- [iphone开发多线程之]多线程之NSInvocationOperation
- iPhone开发【十五】多线程开发之NSThread——异步下载图片
- iPhone开发之多线程使用
- iphone开发中的多线程:NSThread、NSOperation、GCD
- iphone开发-多线程
- iPhone开发进阶(11)--- 多线程的使用与注意事项
- iPhone开发多线程使用与注意事项
- [iphone开发多线程之]ios多线程开发总结
- iPhone开发进阶(11)--- 多线程的使用与注意事项
- iPhone开发【十七】多线程开发之NSOperation&NSOperationQueue——异步下载图片
- 【转载】 iphone使用NSOperationQueue简化多线程开发
- iPhone开发进阶(11)--- 多线程的使用与注意事项
- 利用iphone的多线程实现“售票系统”(手把手教你iphone开发 - 基础篇)
- iPhone开发【十七】多线程开发之NSOperation&NSOperationQueue——异步下载图片
- iPhone开发【十四】多线程开发之NSThread——子线程模拟耗时操作
- iPhone多线程开发之线程队列NSOperationQueue与自定义Protocol