2016-09-25 4 views
0

私はObjcetive-Cクラス(オブジェクト)を書く必要があります。このオブジェクトは、GUIイベントの影響を受けずに計算サイクル(そしてすべてのメソッド/関数)を作成するために、自分のスレッドに存在しなければなりません。このようなクラスを書くための安全な方法はありますか?目的C自分のスレッド内のクラス/オブジェクト

+0

このため、グランドセントラル派遣を使用しています。おそらくこれはあなたを助けます:http://jeffreysambells.com/2013/03/01/asynchronous-operations-in-ios-with-grandcentral-dispatch – bopa

+0

あなたのオブジェクトが "自分のスレッドに生きなければならない"あなたが本当に欲しいのは、計算がそれ自身のスレッドで実行されるということです。さらに、あなたはあなたの結果をどこで期待していますか?オブジェクトで?または、これを容易にする完了ブロックがありますか? –

答えて

0

AppleはiOSでのスレッド操作を処理するためにGCD(Grand Central Dispatch)を使用しています。あなたのケースでは、dispatch_get_global_queueはあなたのユースケースの正しいGCD操作であるかもしれません。 (hereから引用)例:

dispatch_queue_t backgroundQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 
dispatch_async(backgroundQueue, ^{ 
    while ([self shouldKeepProcessingInBackground]) { 
     [self doBackgroundWork]; 
     usleep(1e4); 
    } 
}) 
+3

スレッドは決してループを実行するべきではありません。バッテリーとCPUを食べる。代わりに、何らかの種類のシグナリングメカニズム(GCDがいくつかを提供しています)をブロックします。 – bbum

関連する問題