我使用NSThread在独立线程上创建一个对象。
NSThread* myThread = [[[NSThread alloc] initWithTarget:self selector:@selector(createNewObject:) object:elements] autorelease];
[myThread start]; // Actually start the thread该对象等待事件。当该事件发生时,通知将被发送到默认的通知中心。
我的AppController观察这个通知并运行一个选择器。
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(myMethod:) name:MyNotification object:nil];问题:是从选择器上运行的方法(myMethod:)在主线程上运行还是在上面(myThread)的线程上运行?
发布于 2011-11-24 23:57:38
与发布通知的线程相同。
在多线程应用程序中,通知总是在发出通知的线程中传递,这可能不是观察者注册自己的线程。(来源)
脚注:对象不能等待事件。物体只是存在的。方法可以等待事件。
https://stackoverflow.com/questions/8263576
复制相似问题