def run(self) -> None:
        self.finished.wait(self.delay)
        if not self.finished.is_set():
            self.function(*self.args, **self.kwargs)
        while self.repeat and not self.finished.wait(self.interval):
            if not self.finished.is_set():
                self.function(*self.args, **self.kwargs)