我有几个主题。我想运行它们,确保它们一个接一个地执行。 [run thread1]; [run thread2]; 当我这样做时,thread2正在运行而不等待thread1完成。我需要这个,因为我需要来自线程1的值,以便在线程2上使用。
答案 0 :(得分:1)
如果你真的需要线程,无论出于何种原因,你都可以这样做。
- (void)startThreadOne
{
[NSThread detachNewThreadSelector:@selector(executeThreadOne) toTarget:self withObject:nil];
}
- (void)executeThreadOne
{
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
// calculate the value
[self performSelectorOnMainThread:@selector(threadOneDidFinish) withObject:nil waitUntilDone:NO];
[pool release];
}
- (void)threadOneDidFinish
{
[NSThread detachNewThreadSelector:@selector(executeThreadTwo) toTarget:self withObject:nil];
}
然而,这种方式可能被认为是老式的。应尽可能使用串行调度队列。 Concurrency Programming Guide.