6

我想在线程完成后安排一个线程。

是否可以 ?如何?

例如(指定我的需要)

- (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
    // .....
}
4

2 回答 2

11

如果你使用NSOperations,你可以使用addDependency:方法来指定一个操作的依赖。

如果你走这条路,NSInvocationOperation可能会对你有用。

编辑:我只是重新阅读了这个主题,你在 iPhone 上,所以你没有块,但作为参考,如果你有可用的块,NSBlockOperation会更好。

请注意,当使用这些方法执行异步操作(并假设其中的代码使用自动释放)时,您将负责实例化NSAutoreleasePool您的方法何时开始运行并在退出时释放/排出它。

于 2009-10-28T20:03:18.120 回答
2

(1) 您可以轮询线程isFinished属性。

(2) 您可以注册您的调度/控制对象以接收线程NSThreadWillExitNotification通知。为了更精确的控制,你可以继承 NSThread 并在线程停止之前发送一个通知作为最后一个动作。然后在您的控制对象通知处理程序中,您可以轮询isFinished以确保它在启动下一个线程之前完成。

请参阅线程编程指南NSThread 类指南

于 2009-10-28T20:19:43.173 回答