Уменьшение нагрузки на основной поток при использовании dispatch_get_main_queue () - PullRequest
0 голосов
/ 05 сентября 2011

Я создаю множество миниатюр в приложении для iPhone с помощью GCD.У меня есть что-то похожее на это:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    // generate thumbnail

    // store thumbnail

    dispatch_async(dispatch_get_main_queue(), ^{
        // display thumbnail (cellForRowAtIndexPath and cell.imageView.image = ..
    });
);

Это работает довольно хорошо, но я хотел бы снизить приоритет для блока дисплея, чтобы иметь более отзывчивый поток пользовательского интерфейса.

1 Ответ

0 голосов
/ 12 сентября 2011

Основная очередь (связанная с основным потоком) не имеет приоритета.Вы не можете изменить его приоритет.

В любом случае, вы можете вместо этого опубликовать NSNotification, используя стиль сообщения NSPostWhenIdle.Это позволит вашему коду выполняться только тогда, когда ваше приложение будет иметь некоторое время простоя.См. здесь в документации / специальном руководстве по программированию о таких методах.

...