1

NSInvocaionOperationUI応答を妨げることなくバックグラウンドプロセスを実行するいくつかのスレッド関数(私が使用した)を実装しました。すべてが正常に機能し、操作キューに追加したすべてのセレクターが呼び出されています。(私はNSLogをすべてのセレクターメソッド内に置くことによってこれを言っています)。

各スレッドの状態を確認/調べるための詳細を知りたいです。

あれは、

  • セレクターが完了するまでにかかる時間を測定できますか?
  • 特定のスレッドの現在の状態を知ることができますか?

スレッドの最適化についてさらにいくつかのポイントを追加すると、非常に役立ちます。

前もって感謝します。

4

2 に答える 2

5

スレッドの実行ステータスを取得するには、次のようなメソッドを呼び出します。– isExecuting – isFinished –isCancelledこれはboolを返します。

これも見てください

于 2012-12-06T08:28:47.017 に答える
0

現在、iOS でスレッドの最適化を行う最善の方法は、明示的なスレッド管理を忘れて、代わりに Grand Central Dispatch を使用することです。これはすべての場合に当てはまるわけではありませんが、書き込み中にバックグラウンドでいくつかのセレクターを呼び出すだけであれば、明示的なスレッド化は明らかに過剰です。

これは、GCD を使用してセレクターをバックグラウンドにスピンする方法です。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    [self doSomeLongerTask]; // runs in a background thread
    dispatch_async(dispatch_get_main_queue(), ^{
        [self reportOperationDone]; // runs on the UI thread
    });
});
于 2012-12-06T08:34:01.100 に答える