lee409吧 关注:5贴子:99
  • 0回复贴,共1

NSThread线程

只看楼主收藏回复

最近使用NSThread启动一个线程,来获取数据,而且要更新主线程的ui
我的写法是这样
在需要的地方启动一个线程
-(void)buttonClicked:(id)sender
{
[NSThread detachNewThreadSelector:@selector(getData:) toTarget:self withObject:nil];
}
//线程启动
-(void)getData
{
//加一个线程同步锁防止未处理完再次调用此线程获取数据
@synchronized(self)
{ //自动释放池
//
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[NSRunLoop currentRunLoop];//不加这几句会console会不停打印NSAutoreleasePool 信息
//此处操作如何getData
//待信息处理完调用主线程操作方法
[self performSelectorOnMainThread:@selector(reloadProgressData:) withObject:nil waitUntilDone:NO];
[pool release];
}
}
-(void)reloadProgressData
{
//更改表格等数据和状态
[tableView reloadData];
progressBar.progress=1;
}



IP属地:广东1楼2012-07-04 05:39回复