Модальное оповещение в фоновом потоке в 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:
параметр.