今回は簡易的なキュー(FIFOバッファ)を用意して、そこに入っているデータを単純に取り出すだけの処理を行うスレッドを実行させた。キューの定義はこんな感じ。(NSArray*)list;@end次にアプリケーション初期化処理。YES;}前半ではキューへデータを入れたり[1]、ウィンドウの初期化[2]を行っている。GCDを使いスレッドを一つ作成し、そこで定期的にキュー内のデータを処理させている。このスレッド内ではキューから1づつデータを取り出し処理(単純に1秒スリープ)を繰り返し行う。読んでバックグラウンド処理を終了させている。キューが空になった時には1秒間スリープし、その後キューにデータがあれば処理を実行し、無ければ再びスリープする動作を繰り返す。呼び出してやる必要がある。制御をapplicationDidEnterBackground:applicationWillEnterForeground:の組ではなくapplicationWillResignActive:applicationDidBecomeActive:の組を使うのは、スリープボタンを押した時は前者の組み合わせは呼ばれない為。復帰の時に呼び出されるので今回の目的に適している。追記)iOS5からスリープボタンを押した時でも前者の組み合わせが呼び出されるとのこと。使うとスリープ中もバックグラウンド処理は走り続ける(上限10分)。@hkato193さんが書いている第2章の「マルチタスキング」が詳しい。入手可能な日本語の情報ではこれが一番いい。解説もこの本の第5章「マルチスレッド」(@splhackさん執筆)が詳しくておすすめ。BackgroundApple提供情報。16:03いつも記事を拝見しております。組を使うのは、スリープボタンを押した時は前者の組み合わせは呼ばれない為。呼ばれるようになってしまいました。スリープ(スクリーンロック)もバックグラウンド状態として扱われるようになったためです。そこまでは良いのですが、現時点(5.0)ではスリープとホームボタンとを区別する公式の方法が無いため、iOS4では動いていたアプリもiOS5では動かない問題が色々と出ていますね。バックグラウンド再生に対応していない音楽再生アプリでスリープすると再生が止まってしまうなど・・・なかなかに厄介です。16:03いつも記事を拝見しております。組を使うのは、スリープボタンを押した時は前者の組み合わせは呼ばれない為。呼ばれるようになってしまいました。スリープ(スクリーンロック)もバックグラウンド状態として扱われるようになったためです。そこまでは良いのですが、現時点(5.0)ではスリープとホームボタンとを区別する公式の方法が無いため、iOS4では動いていたアプリもiOS5では動かない問題が色々と出ていますね。バックグラウンド再生に対応していない音楽再生アプリでスリープすると再生が止まってしまうなど・・・なかなかに厄介です。毎回情報どうもそうなんですか-。公式に示されていない仕様には、やはり頼るべきではないということですね。いかないから余計に厄介なのですが。毎回情報どうもそうなんですか-。公式に示されていない仕様には、やはり頼るべきではないということですね。いかないから余計に厄介なのですが。