2011-12-15 2 views
1

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

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

P.S.
Я пробовал ModalAlert из Cookbook разработчика iPhone, который, как говорили, сделал трюк, но мне это не удалось. Кажется, что CFRunLoopRun (который должен остановить поток от выполнения) просто не останавливает фоновый поток.

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

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

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

и NSLog просто выполняется сразу же после начала syncStart нити. Weird.

ответ

1

Вы пробовали NSObjectperformSelectorOnMainThread:withObject:waitUntilDone: метод?

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

+0

О, большое вам спасибо! Это работает. – Nadya

Смежные вопросы