Python time.sleep无限期

时间:2016-05-24 00:31:30

标签: python python-3.x

在Python的时间模块中,有一个sleep()函数,你可以让Python在恢复程序之前等待x秒。有没有办法在条件满足之前无限期地执行此操作?例如:

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

time.unsleep()

我正在尝试为我的PyGame程序制作暂停功能。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:3)

您在问题中的代码意味着您希望其他一些线程恢复您的程序。在这种情况下,您可以使用resumed = threading.Event()。您可以在一个线程中创建它并将其传递给另一个线程:

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

致电resumed.set()立即恢复此代码。

  

我正在尝试为我的PyGame程序制作暂停功能。任何帮助表示赞赏。

使用pygame.time。通常情况下,您有主循环来更新游戏状态,并在循环结束时调用clock.tick(60) # 60 fps。在这种情况下,使用paused标志就足以跳过更新。

答案 1 :(得分:2)

这样的事情:

while not x: time.sleep(0.1)

将等到x为真,在检查之间休息十分之一秒。这通常足够短,以便当x变为真时,您的脚本似乎立即(以人类的方式)做出反应。如果速度不够快,您可以使用0.01。根据我的经验,今天的计算机足够快,即使每百分之一秒检查一个简单的条件也不能真正削弱CPU的使用率。

当然,x应该是可以实际改变的东西,例如一个函数调用。