0

我有一个问题要问你们。我想知道我生成另一个线程并设置 NSNotificationCenter 来观察主线程中的事件?,这样做最好的是什么?

我会非常感谢你的帮助

4

2 回答 2

2

通知由发布者同步传递。不涉及队列。当您调用 时postNotification:,它将立即在当前线程上为所有观察者按顺序运行所有观察者代码,然后返回。

如果观察者想要处理不同队列上的观察,那么您应该使用观察者中的dispatch_asyncNSOperation方法将处理移动到适当的队列然后返回。

于 2013-08-22T02:57:07.847 回答
0

您可以使用- (id)addObserverForName:(NSString *)name object:(id)obj queue:(NSOperationQueue *)queue usingBlock:(void (^)(NSNotification *))block.

正如文档所述,关于队列参数:

应该添加块的操作队列。如果您传递 nil,则该块在发布线程上同步运行。

于 2013-08-22T05:45:11.983 回答