Timers in Python?
Gilles Lenfant
glenfant at equod.com.nospam
Mon Dec 18 12:46:13 EST 2000
Have a look to "threading" package and time.sleep(...) function.
Seems that's all you need!
Important, use threading.Lock() objects if threads may use not sharable
resources.
Warning, binary distributions of Python/Unix are not always compiles with
threads options.
You may need to compile Python from sources if required.
import threading, time
Mylock = threading.Lock()
class TimeScheduled(threading.Thread):
def __init__(self, function, delay):
self.function = function
self.delay = delay
def run(self):
self.alive = 1
while self.alive:
Mylock.acquire() # optional (depends whether unsharable
resources used or not)
self.function()
Mylock.release() # optional
time.sleep(self.delay)
def kill(self):
self.alive = 0
def sayhello():
# Very complex stuff
print "Hello world"
...
# Every 2 minutes
scheduledHello = TimeSceduled(sayhello, 120)
scheduledHello.start()
...
scheduledHello.kill()
...
"Daniel" <Daniel.Kinnaer at AdValvas.be> a écrit dans le message news:
3a3e42ef.16144323 at news.skynet.be...
>
> Is there an equivalent of the Delphi Timer-component in Python as
> well? That is, I want to have two Timers : Timer1 needs to activate
> itself every 2 minutes and Timer2 needs to activate itself every 7
> minutes.
>
> In Delphi I can have 2 Timer.events :
>
> procedure TForm1.Timer1Timer(Sender: TObject);
> begin
> //do a special task1
> end;
>
> procedure TForm1.Timer2Timer(Sender: TObject);
> begin
> //do a special task2
> end;
>
> How is this done in Python?
>
> Thanks for helping out. Daniel
More information about the Python-list
mailing list