3

我想每 3 秒执行一次函数,如果我调用一个没有参数的函数,如下所示:

def mytempfunc():
    print "this is timer!"
    threading.Timer(5, mytempfunc).start()

但是如果我用这样的参数调用一个函数:

def myotherfunc(a,b,c,d):
    print "this is timer!"
    threading.Timer(5, myotherfunc(a,b,c,d)).start()

新线程将立即创建并启动,无需等待 5 秒。有什么我错过的吗?

4

1 回答 1

17

试试这个:

threading.Timer(5, myotherfunc, [a,b,c,d]).start()

在您的代码中,您实际上调用了 myotherfunc(a,b,c,d),而不是将您的函数和参数传递给Timer类。

于 2013-05-24T19:12:27.580 回答