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

时间:2010-01-04 12:18:08

标签: iphone objective-c multithreading nsnotifications

我正在尝试在后台线程上执行操作。过去我用过

  [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];

}   

有没有人知道如何在后台线程上运行?谢谢你的进步。

1 个答案:

答案 0 :(得分:4)

看一下NSObject方法performSelectorOnMainThread:withObject:waitUntilDone: - 它允许你在主线程上运行一个方法,比如startAnimating,同时仍然将你当前正在执行的方法保留在后台。

相关问题