我想在线程完成后安排一个线程。
有可能吗?怎么样?
例如(指明我的需要)
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
// 1. response - schedule myThread
// 2. response - schedule a new thread which will be executed after myThread
// 3. response - schedule a new thread which will be executed after second thread
// .....
}
答案 0 :(得分:10)
如果您使用NSOperations,则可以使用addDependency:方法指定操作的依赖项。
如果你走这条路,NSInvocationOperation可能会对你有用。
编辑:我刚刚重新阅读了主题,你在iPhone上没有块,但作为参考,如果你有可用的块,NSBlockOperation甚至更好。
请注意,当使用这些方法执行异步操作(并假设其中的代码使用自动释放)时,您将负责在方法开始运行时实例化NSAutoreleasePool
并在退出时释放/排除它。 / p>
答案 1 :(得分:2)
(1)您可以轮询线程isFinished
属性。
(2)您可以注册调度/控制对象以接收线程NSThreadWillExitNotification
通知。为了更精确地控制,您可以子类化NSThread并在线程停止之前发送通知作为最后一个动作。然后在控制对象通知处理程序中,您可以轮询isFinished
以确保在启动下一个线程之前完成它。