import sys
import time
from threading import Thread
prepare_to_stop = 0
def in_background_thread():
while not prepare_to_stop:
# Program code here
print(prepare_to_stop)
time.sleep(0.1)
try:
th = Thread(target=in_background_thread)
th.start()
print("\nProgram will shut down after current operation is complete.\n")
time.sleep(10**8)
except KeyboardInterrupt:
prepare_to_stop = 1
print("Program shutting down...")
3条答案
按热度按时间xmq68pz91#
大概是这样的
我将一直等到
x
为真,在两次检查之间休眠十分之一秒,这通常足够短,脚本似乎可以立即做出React(用人类的术语)当x
变为true时。如果这还不够快,您可以使用0.01
。根据我的经验,今天的计算机速度足够快,即使每百分之一秒检查一个简单的条件,也不会真正降低CPU的使用率。当然,
x
应该是可以实际更改的内容,例如函数调用。1bqhqjot2#
问题中的代码暗示了你希望其他线程继续你的程序,在这种情况下你可以使用
resumed = threading.Event()
,你可以在一个线程中创建它,然后把它传递给另一个线程:调用
resumed.set()
立即恢复此代码。我正在尝试为我的PyGame程序做一个暂停功能。任何帮助都是感激的。
使用
pygame.time
。通常情况下,你有一个主循环来更新游戏的状态,在循环的末尾你调用clock.tick(60) # 60 fps
。在这种情况下,使用paused
标志来跳过更新就足够了。9jyewag03#
您可以按如下方式派生一个线程: