NSNotificationQueue, отправитель и обработчик должны в одном потоке?

Если уведомление запускается дочерним потоком, то отправьте его по NSNotificationQueue (конечно, вызывается в дочернем потоке), но с работающим обработчиком в основном потоке, обработчик вызываться не будет. Но если уведомление запущено в главном потоке, оно работает как положено.

Означает ли Apple, что отправитель и обработчик уведомлений должны находиться в одном потоке? Если да, NSNotificationQueue, похоже, не будет таким полезным. Любой, кто знает это, пожалуйста, поделитесь и спасибо заранее.

[[NSNotificationQueue defaultQueue] enqueueNotification:notification postingStyle:NSPostASAP coalesceMask:(NSNotificationCoalescingOnName) forModes:nil];

1 ответ

Решение

Они будут в одной теме. Если вам нужна многопоточность, посмотрите на NSOperationQueue

Отредактировано:

Из ссылки на класс NSNotificationQueue: Каждый поток имеет очередь уведомлений по умолчанию, которая связана с центром уведомлений по умолчанию для задачи. Вы можете создавать свои собственные очереди уведомлений и иметь несколько очередей на центр и поток.

А также:

+ (id)defaultQueueВозвращает очередь уведомлений по умолчанию для текущего потока. Эта очередь уведомлений использует центр уведомлений по умолчанию.

Другие вопросы по тегам