gpt4 book ai didi

python - Threading.Times 不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 00:55:51 24 4
gpt4 key购买 nike

线程中的定时器有问题

来自 documentation:

 def hello():
print "hello, world"
t = Timer(30.0, hello)
t.start() # after 30 seconds, "hello, world" will be printed

cancel()

Stop the timer, and cancel the execution of the timer’s action. This will only work if the timer is still in its waiting stage.

这是我的代码:

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)),线程必须被取消并且 Exception 永远不会抛出

我的代码有什么问题?

最佳答案

您没有将函数作为参数传递,而是调用它。

这个

thr = threading.Timer(5.0, function_terminate(), args=())

必须变成这样

thr = threading.Timer(5.0, function_terminate, args=())

在您的例子中,您传递的是 function_terminate(无)的返回值,而不是单独的函数。

关于python - Threading.Times 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35155897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com