1

メソッドを使用detachNewThreadSelectorして、アプリでスレッドを作成しました。ある時点で、ユーザーがアプリからログアウトしたときに、アプリで実行中のすべてのスレッドを強制終了する必要があります。どうすれば達成できますか?

4

2 に答える 2

4

あなたがあなたと一緒にスレッドを作成する場合detachNewThreadSelector、それをそれ自体で終わらせる必要があります:(

バックグラウンドタスクを制御できるようにする場合は、より適切なオプションがありますNSOperationQueue。これにより、キャンセルメッセージを操作に渡すことができます。

Appleのドキュメントはこちら


編集:NSNotificationCenterを使用したくない場合は、バックグラウンドスレッドが定期的にチェックするフラグを設定し、設定されている場合は自動的に終了します。ただし、そこではスレッドセーフに注意する必要があります:)

于 2012-08-21T12:43:22.093 に答える
0
  1. 「通常の」NSThread コンストラクター (id)initWithTarget:... を使用して、スレッド オブジェクトを保存します。
  2. または、スレッドの開始後にスレッドオブジェクトをどこかに保存します。
  3. スレッドオブジェクトをまったく保存しないでください。スレッドをチェックインして終了するいくつかの個別のフラグを使用するだけです。
于 2012-08-21T12:50:40.133 に答える