NSNotificationQueue, отправитель и обработчик должны в одном потоке?
Если уведомление запускается дочерним потоком, то отправьте его по NSNotificationQueue (конечно, вызывается в дочернем потоке), но с работающим обработчиком в основном потоке, обработчик вызываться не будет. Но если уведомление запущено в главном потоке, оно работает как положено.
Означает ли Apple, что отправитель и обработчик уведомлений должны находиться в одном потоке? Если да, NSNotificationQueue, похоже, не будет таким полезным. Любой, кто знает это, пожалуйста, поделитесь и спасибо заранее.
[[NSNotificationQueue defaultQueue] enqueueNotification:notification postingStyle:NSPostASAP coalesceMask:(NSNotificationCoalescingOnName) forModes:nil];
1 ответ
Они будут в одной теме. Если вам нужна многопоточность, посмотрите на NSOperationQueue
Отредактировано:
Из ссылки на класс NSNotificationQueue: Каждый поток имеет очередь уведомлений по умолчанию, которая связана с центром уведомлений по умолчанию для задачи. Вы можете создавать свои собственные очереди уведомлений и иметь несколько очередей на центр и поток.
А также:
+ (id)defaultQueue
Возвращает очередь уведомлений по умолчанию для текущего потока. Эта очередь уведомлений использует центр уведомлений по умолчанию.