0

I'm developing an application which must extract new messages for user from the server. I have implemented this as a timer which fires every 2 seconds and call a selector which is a method that implement HTTP request and server respond processing. So I think it is quite a bad idea to do this in a main thread.

I have no experience with multithreading in iOS. So I want to know what fits well for parallelizing of this task: GCD or NSThread?

4

1 に答える 1

1

APIスタックを可能な限り上に移動する必要があります。そうすれば、スレッドの管理ではなく、プログラミング機能に集中できます。GCDは、システムがとにかく実行しているスレッドを使用し、独自のコードを管理するよりもはるかに効率的です。ネットワークをにカプセル化することを目指すNSOperationのはさらに良いことNSOperationQueueです。これは、システムが現在の電源ステータスなどに適していると見なすものは何でも、1つ以上のバックグラウンドスレッドで実行されます。

純粋なGCDアプローチに対する利点NSOperationは、操作をキャンセルできることです。ブロックがGCDにコミットされると、何があっても実行する必要があります。

HTTPリクエストをsにカプセル化したい場合はNSOperation、誰かがすでにこれを行っていることを知りたいと思うかもしれません。は、最も広く認識されているiOSネットワークスタックの1つであり、 sをベースとして使用して構築するため、非常に簡単にマルチスレッド化できます。AFNetworking NSOperation

解析コードをにカプセル化してからNSOperation、ネットワークリクエスト操作が戻ってきたら、解析操作インスタンスを作成して、バックグラウンドで処理するために別のキューに配置することをお勧めします。

于 2013-01-29T11:21:19.173 に答える