Является ли NSNotificationCenter потокобезопасным?

могу ли я разместить уведомление в данной очереди и получить его в другой? Я хочу использовать уведомления для связи разных очередей, но я не уверен, что это безопасно...

2 ответов


нет. Уведомления доставляются в том же потоке, из которого они отправляются, это вам нужно будет повторно отправить его каким-то образом, чтобы получить уведомление в свой поток.


нет.

документы Apple по этому вопросу говорят:"регулярные центры уведомлений доставляют уведомления о потоке, в котором было опубликовано уведомление. [...] Иногда может потребоваться доставка уведомлений в определенном потоке, который определяется вами, а не Центром уведомлений. [...] В этих случаях необходимо записывать уведомления по мере их доставки в поток по умолчанию и перенаправлять их в соответствующий поток."

в следующая документация от Apple может помочь: https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Notifications/Articles/Threading.html#//apple_ref/doc/uid/20001289-CEGJFDFG