需要后台流程。线?

时间:2009-02-23 21:40:04

标签: objective-c cocoa networking background-process

我需要一个后台进程来运行每分钟左右。我不希望这个过程干扰应用程序其余部分的响应能力。这是一个线程的好候选人吗?如果是这样,你会如何建议我设置线程 - 特别是哪些类/方法可以调查?

3 个答案:

答案 0 :(得分:5)

对于NSOperationNSOperationQueue来说,这听起来很合适 - 将您的工作单位打包为操作,并在必要时将其解雇。为了做“每分钟左右”位,NSTimer是不足为奇的选择。

答案 1 :(得分:2)

这取决于后台进程的紧密程度。制作一个在后台运行的独立程序可能是个更好的主意。

要开始使用,请查看Apple的guide to threads

多线程编程不适合胆小的人,因此您需要确保理解其背后的想法和警告 - 并且可能首先尝试其他解决方案。如果这个“后台进程”不是很重,你几乎肯定可以在你的主线程上使用一个计时器。如果它与您的应用程序的内部结构没有密切联系,那么“工作”程序可能是个好主意。

答案 2 :(得分:0)

这实际上取决于后台进程正在做什么,它需要访问哪些资源等等。如果你只是想调用someMethod:每分钟然后使用NSTimer。如果你确实需要像NSOperationQueue这样的东西,我建议你研究一下这个替代方案,它解决了当前实现中的一些错误。

http://www.mikeash.com/?page=pyblog/raoperationqueue-an-open-source-replacement-for-nsoperationqueue.html