2017-02-03 2 views
1

Я работаю над улучшением производительности изображений, отображаемых для пользователя. Я удалил альфа-смешение и назначил изображение с масштабированным/правильным размером в UIImageView уже с некоторым кэшированием. Однако, также как часть этого, я подумываю о переходе вызова в фоновый поток.UIImageView setHighlightedImage: он должен быть в главной теме?

ImageView завернут в UIKit, в котором говорится, что любая модификация макетов должна выполняться в основном потоке. Однако при назначении изображения с помощью highlightImage мы не запускаем никаких изменений макета или не вызываем никаких ограничений. Будет ли это действительным изменением, которое не нарушает правила UIKit? Из-за этого будут исключены какие-то исключения?

Я не вижу никаких проблем или предупреждений отладчиком во время выполнения этого до сих пор в фоновом потоке. Также официальная документация Apple (here и here) вокруг UIImageView не указывает ничего об этом на фоновом потоке. Я попытался найти дополнительную информацию в Интернете об этом, но не мог найти что-нибудь полезное

Есть ли основания для[UIImageView setHighlightedImage:], чтобы не быть на фоне потока? Имеет ли он какие-либо преимущества в производительности?

ответ

1

setHighlightedImage Пользовательский интерфейс . Вы не можете запустить его в фоновом потоке.

В приложении какао основной поток запускает пользовательский интерфейс, что есть все рисование и все события обрабатываются в основном потоке. Если ваше приложение выполняет любые длительные синхронные операции над этим потоком , ваш пользовательский интерфейс может перестать отвечать на запросы и вызвать вращающийся курсор . Чтобы этого избежать, вы должны сократить время , потребляемое этими операциями, отложить их выполнение или перенести на вторичные потоки.

Apple Documentation

Смежные вопросы