0

今日、ViewController と TCPController の 2 つの異なるコントローラーでビルドしたプロジェクトをテストしていました。私のViewControllerは、出力と入力ストリームを更新するTCPController(シングルトン)をインスタンス化します。今のテストでは、TCPController のせいにするのは簡単だった、GUI インターフェイスの遅延を特定できました。

Apples Web サイトの標準チュートリアルを使用する前に、TCP コントローラー (クライアント側) をスレッド化する方法に関するベスト プラクティスはありますか? /CreatingThreads.html

これがどのように解決されるかの例は大歓迎です。

4

1 に答える 1

1

ドキュメントを読むことは常に良い考えです。

あなたが何をするかは、あなたのコミュニケーションフレームワークに部分的に依存します。ほとんどの優れたフレームワークは、すでに非同期メソッドを提供しています。そうでない場合。他のものを探してください。

それを除けば、一般的に、バックグラウンドスレッドでコードを実行する必要があります。それが1つの長い仕事である場合、次のことがトリックを行う必要があります...

dispatch_queue_t commQ = dispatch_queue_create("some.unique.labe", 0);
dispatch_async(commQ, ^{
    // Now, any code running in this block is running in a different thread.
    // When you get done, and want to talk to the UI, you must use the main
    // queue for any UIKit calls...

    dispatch_async(dispatch_get_main_queue(), ^{
        // Now this code is running on the main queue
        // Do all your UI stuff here...

    });
});
dispatch_release(commQ);
于 2012-06-01T02:18:11.030 に答える