Python线程。事件重置?
我想在Python线程。事件重置?,python,multithreading,events,Python,Multithreading,Events,我想在threading.Events上重复运行一个函数。但是,看起来您只能一次使用每个事件实例 是否有方法重置线程事件,以便再次触发它?我想它可能看起来像这样: import threading import time def waiting_function(trigger): while True: trigger.wait() # do stuff after trigger trigger.reset() trigger =
threading.Event
s上重复运行一个函数。但是,看起来您只能一次使用每个事件
实例
是否有方法重置线程事件
,以便再次触发它?我想它可能看起来像这样:
import threading
import time
def waiting_function(trigger):
while True:
trigger.wait()
# do stuff after trigger
trigger.reset()
trigger = threading.Event()
waiting_thread = threading.Thread(target=waiting_function, args=[trigger])
waiting_thread.start()
time.sleep(3.) # do some stuff that takes a while
trigger.set()
time.sleep(3.) # do some stuff that takes a while
if not trigger.is_set:
trigger.set()
或者,我是否必须在每次设置后创建一个新的
触发器
,并在线程之间共享它?我认为您只需要删除触发器.reset()
(顺便说一句,它应该是触发器.clear()
)。哦!我只是没有把文件读得足够透彻trigger.clear()
绝对是我想要的。当我用clear替换reset时效果很好。