我正在嘗試設置一個線程,該線程保持空閒狀態,直到新數據可用。在Objective-C中最好的方法是什麼?直到現在我試圖做一個簡單的運行循環iOS中的空閒線程方法
while(YES) {
if(isDataAvailable) {
//process data
}
}
然而,這對性能的巨大的影響,我的FPS下降,從40到20,接口變得不可用(即使實際的數據處理在第二個發生一次對於CPU來說並不是很激烈,我試圖在最後添加[NSThread sleepForTimeInterval:0.01]
,但這樣我就丟失了數據包('流程數據'指的是一些與流相關的操作,排隊和排隊數據包),但是FPS返回到正常
我很公平新的Objective-C,我想也許有更好的方法來做到這一點?我也看過NSRunLoop,但沒有設法使它作爲一個運行循環:),只附加一個定時器,它不會超過我的[NSThread sleepForTimeInterval:0.01]
的事情。
任何幫助它的高度讚賞:d
如何使用調度源? (查看關於GCD/Dispatch Sources的文檔) – 2011-04-09 20:37:12
稍後會看一下,這是觀察者模式的實現嗎?聽起來像,無論如何,會看看,謝謝! – 2011-04-09 20:41:18