毎分実行するバックグラウンド プロセスが必要です。このプロセスがアプリの残りの部分の応答性に干渉することは望ましくありません。これはスレッドの良い候補でしょうか? もしそうなら、どのようにスレッドをセットアップすることをお勧めしますか?特に、どのクラス/メソッドを調べるのが良いでしょうか?
3 に答える
NSOperation
andのかなり良い候補のように思えNSOperationQueue
ます - ワークユニットをオペレーションとしてパッケージ化し、必要に応じて起動します。「毎分かそこら」のビットを実行NSTimer
することは、当然のオプションです。
これは、バックグラウンド プロセスがどの程度密接に結びついているかによって異なります。バックグラウンドで実行する別のプログラムを作成することをお勧めします。
開始するには、Apple のスレッドに関するガイドをご覧ください。
マルチスレッド プログラミングは気弱な人向けではないため、その背後にあるアイデアと注意事項を理解していることを確認し、おそらく最初に他のソリューションを試してください。この「バックグラウンド プロセス」がそれほど重くなければ、メイン スレッドでタイマーを使用するだけでほぼ確実に回避できます。アプリの内部と密接に結びついていない場合は、「ワーカー」プログラムを使用することをお勧めします。
それは、バックグラウンド プロセスが何を行っているか、どのリソースにアクセスする必要があるかなどに大きく依存します。毎分 someMethod: を呼び出したい場合は、NSTimer を使用します。NSOperationQueue のようなものが本当に必要な場合は、現在の実装のいくつかのバグに対処するこの代替品を検討することをお勧めします。