睡眠功能的替代品
Posted
技术标签:
【中文标题】睡眠功能的替代品【英文标题】:alternative for sleep function 【发布时间】:2010-11-30 20:57:47 【问题描述】:我在我的应用程序中实现了以下功能。
for(i=0;!stopThroughButtons && i<totalMovements;i++)
[NSThread detachNewThreadSelector:@selector(moveNeedle) toTarget:self withObject:nil];
sleep(0.3);
这里的sleep
是一个带有unsigned int
类型参数的函数。
Sleep 方法使用秒来休眠。
我想以毫秒为单位给出睡眠时间。
有哪些最佳替代方案可用?
【问题讨论】:
sleep() 是错误的答案。见下文。 好的。但现在我已经从我的逻辑中删除了睡眠,我使用了计时器而不是睡眠和线程。好的@bbum。你的评论让我注意到了这一点。 【参考方案1】:您可能需要nanosleep()
,这需要纳秒。但请记住,这些睡眠时间并不准确,因此您真正拥有的是能够比百分之几秒更准确地指定它。
【讨论】:
nanosleep(, ) 先生,请您告诉我,传递什么作为参数?【参考方案2】:两个选项:@987654321@
将使用微秒@987654322@
将使用纳秒
【讨论】:
最后我实现了这个。 & 有用。 for(i=0;!stopThroughButtons && i还有 NSThread 的 +sleepForTimeInterval:,它以小数秒为单位花费时间。例如:
[NSThread sleepForTimeInterval:0.05];
应该休眠 50 毫秒。
【讨论】:
【参考方案4】:正如在您启动的另一个线程中所提到的,您可能不想在主线程上休眠,因为这会阻止事件传递并冻结 UI。您可能不想循环和休眠,而是要触发计时器并在计时器触发时执行您的操作。
【讨论】:
好的。但现在我已经从我的逻辑中删除了睡眠,我使用了计时器而不是睡眠和线程。好的@bbum。你的评论让我注意到了这一点。 在 UI 测试中,睡眠方法可能很有用,因为测试应用运行在与测试应用不同的进程上。以上是关于睡眠功能的替代品的主要内容,如果未能解决你的问题,请参考以下文章