我有一个应用程序需要在启动(导入到核心数据)后执行相对较慢(15-30 秒)的任务。我正在寻找一种执行任务的好方法,而不会导致界面出现迟缓或卡住。我试过:
- 将导入分成短操作并将它们添加到主 NSOperationQueue
- 使用
performselectorinbackground
执行导入以尝试加快进程
然而,两者都没有带来显着的改善。有什么想法吗?
最佳答案
Chunking up the import into short operations and adding them to the main NSOperationQueue
[我的重点]
如果将操作放在主队列上,它们将在主线程上运行并影响 UI。你应该create a new queue ,将最大并发设置为 1,然后只添加所有操作。
当然,在大多数 iDevice 上只有一个 CPU 内核,因此您可能仍然会遇到问题,但如果您的队列没有使用主线程,fiddling with the operation's thread priority可能有帮助。
关于iphone - 低优先级长时间运行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6183216/