我在线程中遇到计时器问题
从documentation:
这是我的代码:
def function_terminate():
raise Exception
def do():
thr = threading.Timer(5.0, function_terminate(), args=())
thr.start()
sleep(2)
thr.cancel()
这段代码抛出异常但是根据文档,function_terminate()方法必须在调用后5秒钟后运行。
由于2秒钟后我有thr.cancel(sleep(2)),因此必须取消线程,并且异常永远不会抛出
我的代码有什么问题?
最佳答案
您没有将函数作为参数传递,而是在调用它。
这
thr = threading.Timer(5.0, function_terminate(), args=())
必须成为这个
thr = threading.Timer(5.0, function_terminate, args=())
在您的情况下,您传递的是function_terminate的返回值(无),而不是仅传递函数。
关于python - 线程。时间不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35155897/