我正在尝试设置一个线程,该线程保持空闲状态,直到新数据可用。在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