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