使用NSNotification在后台线程执行方法

问题描述:

我想在后台线程上执行一个操作。在过去我已经使用使用NSNotification在后台线程执行方法

[self performSelectorInBackground: @selector (getSetDisplay) withObject: nil]; 

要完成此操作。然而,我已经注册了这个函数在NSNotification中执行,我需要为UIActivityIndi​​cator设置动画。 UIActivityIndi​​cator(据我所知)需要在主线程上运行,但这个通知也是这样做的并且阻止了它。

- (IBAction) btnRefresh_clicked :(id)sender{ 

[activity startAnimating]; 

[navigationUpdateFromDetail setUpdate: NO]; 

[navigationUpdateFromDetail.locationManager startUpdatingLocation]; 

[[NSNotificationCenter defaultCenter] addObserver: self selector : @selector (getSetDiplay) name: @"LocationUpdated" object: nil]; 

} 

有没有人有关于如何让这个运行在后台线程上的想法?感谢提前。

看看NSObject方法performSelectorOnMainThread:withObject:waitUntilDone: - 它可以让你在主线程上运行一个方法,如startAnimating,同时仍然保持当前执行的方法在后台。

+0

谢谢你,那工作 – Makinitez21 2010-01-04 12:33:20