睡眠功能的替代方案

时间:2009-09-23 18:43:55

标签: iphone sleep

我已在我的申请中实施了以下内容。

for(i=0;!stopThroughButtons && i<totalMovements;i++){
        [NSThread detachNewThreadSelector:@selector(moveNeedle) toTarget:self withObject:nil];
        sleep(0.3);
    }

此处sleep是一个参数为unsigned int类型的函数。

睡眠方法使用秒钟睡眠。

我想以毫秒为单位给出睡眠时间。

哪种最佳替代品可用?

4 个答案:

答案 0 :(得分:35)

还有NSThread的+ sleepForTimeInterval:,它在小数秒内需要时间。例如:

[NSThread sleepForTimeInterval:0.05];

应该睡50毫秒。

答案 1 :(得分:33)

答案 2 :(得分:16)

正如您在其他线程中提到的那样,您可能不希望在主线程上休眠,因为这会阻止事件传递并冻结UI。您可能希望在计时器触发时触发计时器并执行操作,而不是循环和休眠。

答案 3 :(得分:3)

您可能需要nanosleep(),这需要纳秒。请记住,这些睡眠时间并不准确,所以你真正拥有的是能够比几百秒更精确地指定它。