2011-01-12 7 views
1

Grand Central Dispatchを使用して(メインキューではなく)キューにブロックを追加しています。このブロックにはループがあり、ループが通過するたびにわずか0.02秒の遅延が必要です。私はこのキューでiphone - Grand Central Dispatchのセカンダリスレッドでusleepを使用してもよろしいですか?

dispatch_async(myOwnQueue, ^{ 
    // begin loop 
    // do stuff 
    usleep(20000); 
    // end loop 
}); 

を使用しています。メインキューではないので、メインスレッドをブロックしません。 警告を::関数「はusleep」の暗黙の宣言を

はそれを行うために他の方法はあり

問題は、Xcodeのが不平を言うことでしょうか?

ありがとうございました。

+0

はdispatch_afterよりよい解決策ではないでしょうか? – NSIntegerMax

+0

ええ、ビジー待機は答えではありません。 dispatch_afterまたはNSTimer、またはdispatch_sourceタイマーを使用しますが、GCDスレッドではビジー待機しません。 GCDは、あなたが提出した作業項目がブロックされないときに最も効果的です。 – ipmcc

答えて

3

あなただけの)(はusleepを呼び出す前に、適切なヘッダーを含める必要があります。

#include <unistd.h> 
+0

ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh私はSOとそれが加わるすべての専門家が大好きです!ありがとう! – SpaceDog

関連する問題