在iPhone应用程序线程后调度线程(scheduling a Thread after a Thr

2019-09-02 01:52发布

我想一个线程完成后要调度线程。

可能吗 ? 怎么样?

例如(指定我的需要)

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

Answer 1:

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

NSInvocationOperation如果你走这条路线将可能对你有用。

编辑:我只是重新阅读的主题和你的iPhone,所以你不必块,但供参考,如果你有可用块, NSBlockOperation甚至更好。

需要注意的是当使用这些方法来执行异步操作(并假设在他们使用自动释放的代码),你会负责实例化一个NSAutoreleasePool当你的方法开始运行,并释放/排水它在退出。



Answer 2:

(1)您可以查询线程isFinished财产。

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

见线程编程指南和NSThread类指南 。



文章来源: scheduling a Thread after a Thread in iphone application