/ / Breaking threading.Timer, gdy funkcja jest wykonywana - python, wielowątkowość, timer

Breaking threading.Timer, gdy wykonywana jest funkcja - python, wielowątkowość, timer

Ustawiam timer w Pythonie na, powiedzmy, 20 sekund, ale w międzyczasie, jeśli wywoływana jest inna funkcja, timer powinien się zepsuć.

Czy istnieje sposób, aby wykonać to za pomocą Pythona threading.Timer?

Odpowiedzi:

0 dla odpowiedzi № 1

Możesz zadzwonić timer.cancel() w ciele funkcji, która powinna go przerwać.

def some_func():
print "Some function that runs after a timeout"


def interrupt_func():
timer.cancel()  # some_func will no longer be called
# other stuff

timer = threading.Timer(20, some_func)
time.sleep(10)
interrupt_func()