1

私の iPhone アプリでは、メイン スレッドが多くの作業を行うバックグラウンド スレッドを作成し、場合によってはユーザーに決定を求める必要があります。ユーザーが質問をすると、バックグラウンド スレッドは動作を停止し、ユーザーが質問に回答した後にのみ続行する必要があります。

それを行う最良の方法は何ですか?

PS
iPhone Developer's Cookbook の ModalAlert を試してみましたが、うまくいくと言われていましたが、成功しませんでした。CFRunLoopRun (スレッドの実行を停止することになっている) は、バックグラウンド スレッドを停止しないようです。

私はそのようなコードを持っていました

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

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

スレッドNSLogの開始直後に実行されました。syncStart変。

4

1 に答える 1

1

NSObjectさんのperformSelectorOnMainThread:withObject:waitUntilDone:方法は試しましたか?

メイン スレッドでユーザーに質問を提示し、バックグラウンド スレッドがアクセスできる場所に応答を保存します。また、パラメーターに設定YESすることで、メイン スレッド セレクターが実行されている間、バックグラウンド スレッドをブロックできるはずです。waitUntilDone:

于 2011-12-15T14:55:32.557 に答える