我需要一个后台进程来运行每分钟左右。我不希望这个过程干扰应用程序其余部分的响应能力。这是一个线程的好候选人吗?如果是这样,你会如何建议我设置线程 - 特别是哪些类/方法可以调查?
答案 0 :(得分:5)
对于NSOperation
和NSOperationQueue
来说,这听起来很合适 - 将您的工作单位打包为操作,并在必要时将其解雇。为了做“每分钟左右”位,NSTimer
是不足为奇的选择。
答案 1 :(得分:2)
这取决于后台进程的紧密程度。制作一个在后台运行的独立程序可能是个更好的主意。
要开始使用,请查看Apple的guide to threads。
多线程编程不适合胆小的人,因此您需要确保理解其背后的想法和警告 - 并且可能首先尝试其他解决方案。如果这个“后台进程”不是很重,你几乎肯定可以在你的主线程上使用一个计时器。如果它与您的应用程序的内部结构没有密切联系,那么“工作”程序可能是个好主意。
答案 2 :(得分:0)
这实际上取决于后台进程正在做什么,它需要访问哪些资源等等。如果你只是想调用someMethod:每分钟然后使用NSTimer。如果你确实需要像NSOperationQueue这样的东西,我建议你研究一下这个替代方案,它解决了当前实现中的一些错误。