Вы можете использовать Периодический опрос, и мы можем установить условие, поэтому, пока условие не будет выполнено, оно может подождать.
import time
def wait_until(somepredicate, timeout, period=0.25, *args, **kwargs):
mustend = time.time() + timeout
while time.time() < mustend:
if somepredicate(*args, **kwargs): return True
time.sleep(period)
return False
Подход 2:
Мы можем использовать объекты событийждать, здесь ниже ссылка, которая объясняет то же самое.
https://docs.python.org/3/library/threading.html#event-objects