import thread import time ################################################################################ class Timer: # Create Timer Object def __init__(self, interval, function, *args, **kwargs): self.__lock = thread.allocate_lock() self.__interval = interval self.__function = function self.__args = args self.__kwargs = kwargs self.__loop = False self.__alive = False # Start Timer Object def start(self): self.__lock.acquire() if not self.__alive: self.__loop = True self.__alive = True thread.start_new_thread(self.__run, ()) self.__lock.release() # Stop Timer Object def stop(self): self.__lock.acquire() self.__loop = False self.__lock.release() # Private Thread Function def __run(self): while self.__loop: self.__function(*self.__args, **self.__kwargs) time.sleep(self.__interval) self.__alive = False