打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
iOS中使用子线程的完整方法

第一步:开启子线程

    //开启子线程到网络上获取数据    myFirstThread = [[NSThread alloc]initWithTarget:self selector:@selector(thread1GetData) object:nil];    [myFirstThread setName:@"第一个子线程,用于获取网络数据"];    [myFirstThread start]; 

第二步:子线程的方法

//获取数据-(void)thread1GetData{    while (!myFirstThread.isCancelled) {        //  关键        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];        //通过接口获取数据 (字典格式)         self.dic_base64TabelViewDataSource = [self getDataFromInterFace];                //将数据字典转换成可以直接显示的cellview    nsma_CellViews   相当于终极数据源        self.nsma_CellViews = [self orderDataForTableViewWithDictinary: self.dic_base64TabelViewDataSource];                //用数据源 nsma_CellViews 更新用户界面        [self performSelectorOnMainThread:@selector(updateUI) withObject:nil waitUntilDone:YES];                // [NSThread sleepForTimeInterval:0.09];     //不用亦可        [pool release];        [NSThread exit];     //关键            }    }

 

第三步:结束子线程

-(IBAction)btnBack:(id)sender{    //释放内存    仅仅remove 并不会触发内存的释放        if (!(mySecondThread==nil) && !myFirstThread.isCancelled) {        [myFirstThread cancel];                 //等子线程结束再跳出循环        int i=0;        while (!myFirstThread.isFinished){            NSLog(@"mySecondThread还没有结束 %i",i++);        }    }    //其它操作  

 

疑问:

第二步中,while方法的工作原理是什么?

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
iOS开发多线程之总结篇(常见用法、常用方法)
iOS多线程开发 NSThread
多线程 NSthread
多线程操作数据库 (CoreData)
ios 多线程
线程基础
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服