iphone - 低优先级长时间运行任务

标签 iphone objective-c cocoa-touch cocoa

我有一个应用程序需要在启动(导入到核心数据)后执行相对较慢(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/

相关文章:

iphone - 将触摸事件传递给 View Controller 的所有 subview

iphone - Plist 到 UITableView

iPhone - 检测 iDevice 是否有前置摄像头

objective-c - 无法运行首选项 Pane 应用程序

cocoa-touch - Cocoa Touch 中的动画?

iphone - 如何开始一个同时输出 iPhone 和 iPad 的项目?

objective-c - 有没有快速的方法知道 UITableView 中设备屏幕外的单元格是什么?

objective-c - NSPredicate 格式字符串不起作用

iphone - 如何在 xcode 之外修改 .xib 文件?

iphone - UIWebView:加载 URL 时出错