Continuous Timer

Gabriel Genellina gagsl-py2 at
Tue Jun 3 04:11:56 CEST 2008

En Fri, 30 May 2008 22:50:13 -0300, Robert Dailey <rcdailey at>  

> Reading through the Python 2.5 docs, I'm seeing a Timer class in the
> threading module, however I cannot find a timer object that will
> continuously call a function of my choice every XXXX amount of  
> milliseconds.
> For example, every 1000 milliseconds I want a function named Foo to be
> called. This would continue to happen until I terminate the timer in my  
> main
> thread. Thanks for the help.

Use an Event object; its wait() will provide the sleep time, and when it  
is set() the thread knows it has to exit.

import threading
import time

def repeat(event, every, action):
     while True:
         if event.isSet():

def foo():
     print "I'm bored to death..."

print "creating event and thread"
ev = threading.Event()
t1 = threading.Thread(target=repeat, args=(ev, 1.0, foo))
print "starting thread"
print "waiting for 10 seconds in main thread"
print "setting event"
print "waiting for thread to finish"
print "quit"

Gabriel Genellina

More information about the Python-list mailing list