我已在我的申请中实施了以下内容。
for(i=0;!stopThroughButtons && i<totalMovements;i++){
[NSThread detachNewThreadSelector:@selector(moveNeedle) toTarget:self withObject:nil];
sleep(0.3);
}
此处sleep
是一个参数为unsigned int
类型的函数。
睡眠方法使用秒钟睡眠。
我想以毫秒为单位给出睡眠时间。
哪种最佳替代品可用?
答案 0 :(得分:35)
还有NSThread的+ sleepForTimeInterval:,它在小数秒内需要时间。例如:
[NSThread sleepForTimeInterval:0.05];
应该睡50毫秒。
答案 1 :(得分:33)
两个选项:
int usleep(useconds_t useconds)
将使用微秒
int nanosleep(const struct timespec *rqtp, struct timespec *rmtp)
将使用纳秒
答案 2 :(得分:16)
正如您在其他线程中提到的那样,您可能不希望在主线程上休眠,因为这会阻止事件传递并冻结UI。您可能希望在计时器触发时触发计时器并执行操作,而不是循环和休眠。
答案 3 :(得分:3)
您可能需要nanosleep()
,这需要纳秒。请记住,这些睡眠时间并不准确,所以你真正拥有的是能够比几百秒更精确地指定它。