我想监视一个线程,我设置在后台运行。当它完成执行时我需要提醒。监控后台线程
- (IBAction) btnGreaterTen_clicked :(id)sender{
self.searchDistance = [NSNumber numberWithDouble : 10];
CGRect frame = CGRectMake (120.0, 185.0, 80, 80);
activity = [[UIActivityIndicatorView alloc] initWithFrame: frame];
activity.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;
[navigationUpdateFromDetail.window addSubview: activity];
[activity startAnimating];
thread = [[NSThread alloc] init];
[thread start];
[self performSelectorInBackground: @selector (getSetDisplay) withObject:nil];
if(thread.isFinished == YES){
[activity stopAnimating];
}
}
上面的代码我尝试不同的设置以达到最终结果后有什么。我正在尝试动画UIActivityIndicator,同时我使用该方法“getSetDisplay”从网上获取信息。
功能是好的,但活动指示灯不上来。我被告知我需要在后台线程上运行该进程,并在主线程上运行该动画。我现在的问题是如何监控此过程何时停止活动指示器。谢谢你提前
我试过的方法,但是从我了解的需求UIActivity主线程上运行,操作系统把它放在该线程。那就是为什么即时在后台运行我的方法。我只需要知道如何监控它 – Makinitez21 2009-12-31 10:54:06
考虑在你的getSetDisplay方法的末尾加上类似的东西: '[activity performSelectorOnMainThread:@selector(stopAnimating)withObject:nil waitUntilDone:NO]' – Mike 2009-12-31 10:57:20
Your thread = [ [NSThread alloc] init];似乎没有做任何事情。你正在那里产生一个线程,然后是另一个带有performSelectorInBackground调用的线程。 以上说法可能是我要走的路...或者你可以在后台运算和前景OP之间使用NSNotifications来的消息。 – Hunter 2009-12-31 16:28:28