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++); } }  //其它操作  

复制代码

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值