//以前一直不知道多线程是个什么东西,为什么要用到线程。直到项目里遇到请求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