Core Animation использует фоновый поток для выполнения своей работы. Теперь проблема в следующем: у меня в основном потоке выполняется тяжелый расчет. Core Animation немедленно зависает до тех пор, пока этот расчет не будет выполнен. А затем он продолжает заканчивать анимацию. Я помню, как читал в документе, что CA имеет низкий приоритет во времени обработки, а это означает, что все, что хочет сделать основной поток, является приоритетным и будет выполнено с большей вероятностью, чем любая модная анимация одновременно.
Я хочу заставить Core Animation планировать свой фоновый поток в соответствии с основным потоком при любых обстоятельствах. Или, в качестве альтернативы, отдельный поток, который будет выполнять тяжелые вычисления вне основного потока. Я уже пробовал это, но CA все еще зависает, пока это не будет сделано. Я ожидаю, что планировщик быстро переключит время обработки между CA и этим расчетом.
Как можно заставить CA продолжать работать? Если дела пойдут немного медленнее, это нормально. Но самое главное, чтобы все продолжалось с точки зрения пользователей.