Выполнять метод только по истечении двух секунд с момента последнего выполнения - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть цикл while, который выполняет два метода.Я хочу, чтобы функция B () выполнялась КАЖДЫЕ 2 секунды.Я знаю, что есть решения, которые могут использовать поток, чтобы использовать таймер для его выполнения каждые две секунды, но это то, что я НЕ хочу использовать.Я хочу, чтобы оба метода выполнялись в главном потоке.

def functionA():
   # Code goes here

def functionB():
   # Code goes here

while True:
        # Execute function A
        functionA() 

        # Periodically execute functionB every 2 seconds
        functionB()

Я не уверен, как рассчитать разницу между последним выполнением и текущим временем.Я ищу в Интернете несколько примеров, но они, кажется, смущают меня больше.

Любая помощь будет оценена.

1 Ответ

1 голос
/ 25 сентября 2019

получить метку времени в секундах и проверить, прошло ли 2 или более секунд с момента последнего выполнения.

import time    
def functionA():
   # Code goes here

def functionB():
   # Code goes here
lastExec = 0
while True:
        # Execute function A
        functionA() 

        now = time.time()
        if now - lastExec >= 2:
           # Periodically execute functionB every 2 seconds
           functionB()
           lastExec = now
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...