Я пытаюсь получить уведомление NSTaskDidTerminateNotification
в моем многопоточном приложении, но я не могу заставить его работать. Кажется, он работает, когда я тестировал его в однопоточном приложении. В init
У меня есть [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(taskDidEnd:) name: NSTaskDidTerminateNotification object: myTask];
, и я уверен, что он вызван, потому что там инициируются другие объекты (такие как myTask). А метод taskDidEnd:
определяется какNSNotification и многопоточность
- (void)taskDidEnd: (NSNotification *)aNotification
{
NSLog(@"Task succeeded.");
}
И dealloc наблюдатель получает удалены.
Все это происходит в объекте, который инициируется внутри отдельного потока, и я хотел бы получить это уведомление внутри одного и того же объекта.
Кстати, есть ли причина, по которой вы делаете это в потоке? Задачи (процессы) уже имеют тенденцию планироваться на других процессорах, а циклы запуска естественно обрабатывают нечастые дискретные события, такие как обработка NSTasks. –
После долгого поиска я обнаружил, что NSTask не реагирует, а что-то еще. Это позволяет мне избавиться от потока. Спасибо, что спросили, зачем я нужен, иначе я бы не нашел проблему. –