)時間のかかる処理を実行している間、プログレスバーを使用してどのくらい処理したかを示すことが重要です。プログレスバーを表示して進めるだけならスレッド化の必要はないのですが、処理をキャンセルできるようにするためにはスレッド化が必要になります。スレッド化しなくともできないわけではありませんが、処理が複雑で難しくなるのでお勧めしません。cocoaでのスレッド化は非常に簡単なのです。サンプルコード(プロジェクト)を二つ用意しました。一つ目は時間のかかる処理がシングルスレッドで流れるもの。既存のプログラムにプログレスバーを追加したい場合はこちらですね。二つ目は時間のかかる処理を複数のスレッドで分割して処理する場合です。分割の仕方は処理内容によって効率的な方法を考えなければいけませんが、このサンプルコードは数値の範囲で別けただけなので非常にシンプルです。bindingで実行しています。メニューは全く使用していません。4.4.1で作成していますが、4.4以降なら全く問題ないと思います。1.TestProgressIndicator時間のかかる処理をNSThreadでスレッド化しています。シングルスレッドを前提にプログレスバーの変更もスレッドの中から直接実行しています。ループの中では0.1秒時間を浪費しているだけで、cpuも使用しません。10秒で処理が終了します。使用して複数の処理を実行させています。複数のタスクが同時に動くので、タスクの中から直接プログレスバーを変更しようとすると、競合して結果が不正なものとなってしまいます。利用してメインループの中でシリアルに処理させています。数値の平方根を計算してそれを累積し、最終結果をNSLog()で表示しています。maxCountのNSOperationに分割していますが、最大4個まで並行処理する設定にしてあります。アクティビティモニターで確認してください。Katayanagi。