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