我想監視一個線程,我設置在後臺運行。當它完成執行時我需要提醒。監控後臺線程
- (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