У меня есть некоторые предварительные загрузки текстур и звуковых эффектов, которые мне нужно сделать асинхронно, чтобы создать плавный пользовательский опыт в разрабатываемой мной игре для iOS.
Я пытаюсь выбрать между NSOperationQueue и NSThread, чтобы загрузить эти игровые ресурсы во время игры.
NSOperationQueue, кажется, явный победитель и имеет многочисленные преимущества, но я обеспокоен тем, чтобы иметь эффективный приоритетный контроль над этой «фоновой» задачей загрузки ресурсов, чтобы я мог отклонить ее с точки зрения того, сколько циклов он потребляет, так как не влиять на частоту кадров.
Я вижу, что в NSOperationQueue есть концепция «приоритета», но она выглядит иначе, чем в «NSThread»: «приоритет». Поправьте меня, если я ошибаюсь, но приоритет NSThread связан с другими потоками, работающими в системе, и приоритет NSOperation является приоритетом этой задачи по отношению к другим задачам в очереди.
То, что я хочу знать, это ....
Есть ли способ управления приоритетом заданной задачи NSOperationQueue в зависимости от того, сколько циклов (в отличие от относительного приоритета по сравнению с другими задачами в очереди) он может потреблять по сравнению с другими потоками, в настоящее время работающими на устройстве?
Безопасно ли в задаче NSOperationQueue изменить приоритет текущего потока? (с помощью NSThread's + setPriority)