2011-01-12 36 views
1

我正在使用Grand Central Dispatch將一個塊添加到隊列(而不是主隊列)。該塊有一個循環,並且在循環的每個通道之間需要0.02秒的小延遲。我正在使用iphone - 可以在Grand Central Dispatch的輔助線程上使用usleep嗎?

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

在此隊列上。因爲它不是主隊列,所以不會阻塞主線程。

的問題是,Xcode中抱怨:警告:函數「usleep」隱式聲明

有沒有其他辦法可以做到這一點?

謝謝。

+0

不會dispatch_after是一個更好的解決方案嗎? – NSIntegerMax 2013-01-02 22:03:55

+0

是的,忙等待不是答案。使用dispatch_after或NSTimer或dispatch_source計時器,但不要忙於在GCD線程上等待。當您提交給它的工作項目沒有被阻止時,GCD效果最佳。 – ipmcc 2013-08-19 13:45:46

回答

3

你只需要調用包括usleep()函式之前適當的頭:

#include <unistd.h> 
相關問題