2

我正在尝试NSTaskDidTerminateNotification在我的多线程应用程序中获取通知,但无法正常工作。当我在单线程应用程序上测试它时,它似乎确实有效。在init我有[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(taskDidEnd:) name: NSTaskDidTerminateNotification object: myTask];并且我很确定它被调用是因为其他对象(如 myTask)正在那里启动。该taskDidEnd:方法定义为

- (void)taskDidEnd: (NSNotification *)aNotification
{
     NSLog(@"Task succeeded.");
}

在 dealloc 中,观察者被移除。

这一切都发生在一个在单独线程内启动的对象中,我想在同一个对象内接收该通知。

4

1 回答 1

1

您是否在该线程上运行了运行循环?如果没有,NSTask 不会注意到任务结束(或者任务还没有结束)并且不会发布通知。

于 2010-04-05T14:55:52.050 回答