我在线程中遇到计时器问题
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/

10-12 01:23