我有一个问题,我需要在for循环中等待一段时间,直到布尔变量的值被改变。我故意在循环中等待。样本代码:
check = True
def change_check_value():
global check
###
after a while check changes to true
###
change_check_vale() #running on a different thread
for i in range(0,10):
print(i)
check = False
## wait till check becomes true and continue the for loop
我想在for循环中等待,直到校验再次变为true。我尝试了while循环,但我无法实现功能。time.sleep()
无法使用,因为我不确定要等待多少时间。
3条答案
按热度按时间lnlaulya1#
您可以使用 Event 对象,它可以在 threading 和 asyncio 包下找到。
事件对象有一个 wait() 方法,当调用它时,代码将不会继续,直到Event设置为true。一旦事件被设置为 True,代码将立即继续。
asyncio示例(源代码):
线程示例():
xggvc2p62#
尝试使用这篇文章中提到的方法:Is there an easy way in Python to wait until certain condition is true?
希望能帮上忙。
j0pj023g3#
这可以用一种非常简单的方式来实现: