我正在尝试在我的多线程应用程序中获取通知 NSTaskDidTerminateNotification
,但无法使其正常工作。当我在单线程应用程序上测试它时,它似乎确实有效。在 init
中,我有 [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(taskDidEnd:) name: NSTaskDidTerminateNotification object: myTask];
我很确定它被调用是因为其他对象(如 myTask)正在那里启动。 taskDidEnd:
方法定义为
- (void)taskDidEnd: (NSNotification *)aNotification
{
NSLog(@"Task succeeded.");
}
在解除分配中,观察者被删除。
这一切都发生在一个在单独线程内启动的对象中,我希望在同一对象内接收该通知。
最佳答案
您是否在该线程上运行了运行循环?如果没有,NSTask 将不会注意到任务已结束(或者任务尚未结束),也不会发布通知。
关于cocoa - NSNotification 和多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2578764/