I create an object on a seperate thread using NSThread.
NSThread* myThread = [[[NSThread alloc] initWithTarget:self selector:@selector(createNewObject:) object:elements] autorelease];
[myThread start]; // Actually start the thread
That Object waits for an event. When that event occurs a notification is posted on the default notification center.
My AppController observes that notification and runs a selector.
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(myMethod:) name:MyNotification object:nil];
Question: Does the method (myMethod:) from the selector run on the main thread or on the thread from above (myThread) ?
Same thread in which you post the notification.
Footnote: Objects can’t wait for events. Objects just exist. Methods can wait for events.