Модальное оповещение в фоновом потоке в iPhone

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

Каков наилучший способ сделать это?

PS
Я попробовал ModalAlert из книги разработчиков iPhone Developer's, которая, как говорили, добилась цели, но мне не удалось. Кажется, что CFRunLoopRun (который должен остановить выполнение потока) просто не останавливает фоновый поток.

У меня был такой код

+(void) main
{
    [NSThread detachNewThreadSelector:@selector(startSync) toTarget:self withObject:nil];
}

+(void) startSync
{
    CFRunLoopRun();
    NSLog("Hi");
}

а также NSLog был сразу же выполнен после запуска syncStart нить. Weird.

1 ответ

Решение

Ты пытался NSObject"s performSelectorOnMainThread:withObject:waitUntilDone: метод?

Представьте свой вопрос пользователю в главном потоке, а затем сохраните ответ где-нибудь, где ваш фоновый поток может получить к нему доступ. Кроме того, вы должны иметь возможность блокировать фоновый поток на время, в течение которого работает основной селектор потоков, установив YES к waitUntilDone: параметр.

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