iOS 多线程 NSInvocationOperation

 //以前一直不知道多线程是个什么东西,为什么要用到线程。直到项目里遇到请求XML时。当数据加载或刷新时界面就会卡。也就是主线程堵塞。后来终于把这个问题给解决了。
 //初始化
  _operationQueue = [[NSOperationQueue alloc]init];
//设置每秒请求一次 。在这里selector:@selector(threadTestN)后面注意如果threadTestN没有带冒号,表示这个方法不带参数。如果带上了冒号":"表示这个方法是有参数的
   NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1    
                                                      target:self
                                                    selector:@selector(threadTestN)
                                                    userInfo:nil
                                                     repeats:YES];

-(void)threadTestN
{
   //启动线程。加入队列
    [_operationQueue addOperation:[self startThread]];
}


-(NSInvocationOperation*)startThread
{
    NSInvocationOperation *requestThread = [[NSInvocationOperation alloc]initWithTarget:self
                                                                               selector:@selector(ThreadTestMeth) 
                                                                                 object:nil];
    
    
    return [requestThread autorelease];
}

-(void)ThreadTestMeth 
{
     //这里开始加载从XML请求来的数据
     [threadLoad loginNoticeDate];
   
}

//这样就基本每秒从服务器请求一次 。再也不用担心主线程会阻塞了。

 

 

qingjoin 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值