Приложение зависло с загрузкой процессора до 100%

Мое приложение застряло с CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION, В моем приложении я вызвал функцию C, которая является асинхронной. Я показываю сообщение ожидания во время выполнения.
Когда эта функция завершается, она вызывает делегата для закрытия этого ожидающего сообщения и одновременного отображения AlertView.

Я использую gcd чтобы показать alertview

dispatch_async(dispatch_queue_create("com.myapp.service.waitingmessage", nil), ^{
            dispatch_async(dispatch_get_main_queue(), ^{
            UIAlertView *anAlert = ...
            [anAlert show];
             });
        });

Вот скриншот Debugger XCode, когда приложение зависло. Я также вижу, что загрузка процессора моим приложением составляет до 100%, возможно, поэтому приложение приостановлено системой.

1 ответ

Использование dispatch_sync() на месте dispatch_async(dispatch_get_main_queue(), ^{...

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

Другие вопросы по тегам