Python time.sleep无限期

2024-10-05 21:53:29 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python的time模块中,有一个sleep()函数,可以让Python在恢复程序之前等待x秒。有没有办法无限期地这样做,直到满足某个条件?例如:

while True:
    time.sleep()
    if x:
        break

time.unsleep()

我正在尝试为我的PyGame程序创建一个暂停函数。如有任何帮助,我们将不胜感激。


Tags: 模块函数程序trueiftimesleep条件
2条回答

像这样的:

while not x: time.sleep(0.1)

将等到x为真,在检查之间睡眠十分之一秒。这通常足够短,当x变为真时,您的脚本似乎可以立即(用人类的术语)做出反应。如果不够快,可以使用0.01。以我的经验,今天的计算机足够快,即使每百分之一秒检查一个简单的条件也不会真正减少CPU的使用。

当然,x应该是可以实际更改的内容,例如函数调用。

这个问题中的代码意味着您希望其他线程继续您的程序。在这种情况下,您可以使用^{}。您可以在一个线程中创建它并将其传递到另一个线程:

while not resumed.wait(): # wait until resumed
    "continue waiting"

调用resumed.set()立即恢复此代码。

I am trying to make a pause function for my PyGame program. Any help is appreciated.

使用^{}。通常,在主循环中更新游戏状态,在循环结束时调用clock.tick(60) # 60 fps。在这种情况下,使用paused标志就足够了,可以跳过更新。

相关问题 更多 >