如何在python中取消setInterval?

时间:2019-03-08 14:36:06

标签: python

我正在使用此代码每3秒调用一次函数doSomething。但我希望在numeroPeticiones== 3时停止这样做。我找了很多例子,但都没有用。就我而言,即使满足numeroPeticiones== 3的条件,我的函数仍将继续从外部执行。我该如何解决?

import threading
from threading import Timer
numeroPeticiones=0

def doSomething():
    global numeroPeticiones
    numeroPeticiones=numeroPeticiones+1
    print ("hello, world",numeroPeticiones)
    if numeroPeticiones == 3:
        print("cancel")
        t.cancel()

def set_interval(func, sec): 
    def func_wrapper():
        set_interval(func, sec) 
        func()  
    t = threading.Timer(sec, func_wrapper)
    t.start()
    return t

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作,如果num等于3,它将无法启动计时器

from threading import Timer
num = 0

def hello():
    global num
    num += 1
    print("hello, world")
    if (num < 3):
        Timer(3, hello).start()


Timer(3, hello).start()