我有几条线。我想运行它们,确保它们一个接一个地执行。运行thread1;运行thread2;当我执行此操作时,thread2正在运行,而不等待thread1完成。我需要这个,因为我需要线程1的值,以便在线程2上使用。
发布于 2011-09-11 22:06:00
如果你真的需要线程,不管是什么原因,你可以这样做。
- (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.
https://stackoverflow.com/questions/7378022
复制相似问题