【发布时间】:2011-09-09 14:13:55
【问题描述】:
我需要异步预加载一些纹理和音效,以便在我正在开发的 iOS 游戏中创建流畅的用户体验。
我正在尝试在 NSOperationQueue 和 NSThread 之间做出决定,以便在游戏过程中加载这些游戏资源。
NSOperationQueue 似乎是一个明显的赢家并且有很多好处,但我担心对这个“后台”资源加载任务进行有效的优先级控制,这样我就可以根据它消耗的周期数来拒绝它所以以免影响帧率。
我看到 NSOperationQueue 有一个“优先级”的概念,但它看起来与 NSThread 的“优先级”概念不同。如果我错了,请纠正我,但 NSThread 的优先级与系统上运行的其他线程相关,而 NSOperation 的优先级是该任务相对于其他排队任务的优先级。
我想知道的是……
与当前在设备上运行的其他线程相比,有没有办法控制给定 NSOperationQueue 任务的优先级与它可以消耗的周期数(相对于相对优先级与其他排队任务相比)?
在 NSOperationQueue 的任务中更改当前线程的优先级是否安全? (使用 NSThread 的 +setPriority)
【问题讨论】:
标签: objective-c nsthread nsoperationqueue preloading