2016-05-24 2 views
0

КСН, пользовательский интерфейс должен быть обновлен только через основной поток, но что меня интригует то, что в документации, пользователь-интерактивный качество обслуживания определяется так:QoS пользователя интерактивный и обновление пользовательского интерфейса

Работа, которая взаимодействует с пользователем, например, работает на основном потоке , обновляет пользовательский интерфейс или выполняет анимацию. Если работа выполняется не быстро, пользовательский интерфейс может выглядеть замороженным. Ориентация на отзывчивость и производительность.

Проблема заключается в том, что, если вы звоните dispatch_get_global_queue с этим QoS, очередь, возвращаемый не будет главной очереди, я прав? Таким образом, как работа, представленная в эту очередь, обновляет пользовательский интерфейс?

спасибо.

ответ

2

Dispatch_get_global_queue всегда будет предоставлять вам глобальную параллельную очередь. Вы не можете обновить ui в этой очереди, как в любой очереди, кроме основной.

Как и пользовательский интерактивный Qos, он используется для работы, которая имеет решающее значение для ui, и результаты необходимы как можно быстрее.

Хорошим примером является то, что у вас есть изображение, которое нуждается в обработке. Вы можете обработать изображение в global_queue с помощью User-Interactive Qos, и когда это будет сделано, вы установите образ результата в вашем изображении (это делается в главной очереди).

+0

Спасибо! Теперь я понимаю лучше. –