Многопоточный таймер

Этот код через 5 секунд работы возвращает 'Всё работает' один раз, а хотелось бы, чтобы он возвращал эту надпись каждые 5 секунд, параллельно выполняя команды в цикле While

import threading
flag = 1

def ok():
    print('Всё работает')
    threading.Timer(5, ok)

while True:
    if flag == 1:
        Timer2 = threading.Timer(5, ok)
        Timer2.start()
        flag = 0
    print(..)
    a = b
    ..

Ответы (1 шт):

Автор решения: splash58

вы не перезапускаете таймер. Добавьте threading.Timer(1, ok).start() в функцию

import threading
import time

flag = 1

def ok():
    print('Всё работает')
    threading.Timer(1, ok).start()

while True:
    if flag == 1:
        ok()
        flag = 0
    print("А это цикл")
    time.sleep(3)
→ Ссылка