【发布时间】:2016-11-02 08:24:52
【问题描述】:
请任何人告诉我如何在 swift 2.2 中使用 sleep() 几毫秒?
while (true){
print("sleep for 0.002 seconds.")
sleep(0.002) // not working
}
但是
while (true){
print("sleep for 2 seconds.")
sleep(2) // working
}
它正在工作。
【问题讨论】:
-
线程休眠或yield在轮询的情况下有效,一。许多界面不提供通知,因此您必须经常检查即将发生的异步更改。在检查之间不暂停线程的情况下执行此操作将不必要地骚扰 CPU 并可能阻塞您正在等待的进程。
-
sleep() 将 int 作为参数。所以 sleep(0.002) 会休眠 0 秒。改用 usleep(nanoseconds)
-
对于那些想要使用 Swift 5.5 的 async 和 await 睡眠的人,请参阅另一篇帖子的 this 回答。