En Fri, 30 May 2008 22:50:13 -0300, Robert Dailey <[EMAIL PROTECTED]>
escribió:
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:
event.wait(every)
if event.isSet():
break
action()
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"
t1.start()
print "waiting for 10 seconds in main thread"
time.sleep(10)
print "setting event"
ev.set()
print "waiting for thread to finish"
t1.join()
print "quit"
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list