Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python线程。事件重置?_Python_Multithreading_Events - Fatal编程技术网

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时效果很好。