Talaltam egy egyszeru es alkalmankent hasznos kodot, ha pl egy eljarast adott idozitessel, n alkalommal szeretnenk futtatni - parameterek nelkul.
#!/usr/bin/env python
#-*- coding: utf-8 -*-
from threading import Event, Thread
class RepeatTimer(Thread):
def __init__(self, interval, function, iterations=0, args=[], kwargs={}):
Thread.__init__(self)
self.interval = interval
self.function = function
self.iterations = iterations
self.args = args
self.kwargs = kwargs
self.finished = Event()
def run(self):
count = 0
while not self.finished.is_set() and (self.iterations <= 0 or count < self.iterations):
self.finished.wait(self.interval)
if not self.finished.is_set():
self.function(*self.args, **self.kwargs)
count += 1
def cancel(self):
self.finished.set()
'''
Az alkalmazasanal ketto vagy harom parametert kell megadni: az idozitest masodpercben,
az eljaras amit futtasson es opcionalisan a futtatasok szama.
Ha nem adjuk meg a futattassok szamat, akkor folyamatosan fog futni, az adott idozitessel.
pl:
'''
def HelloWorld():
print 'Hello World!'
if __name__ == "__main__":
r = RepeatTimer(1.0, HelloWorld, 3)
r.start()