Я добился этого, выполнив следующее: -создание двух manager.list, одного для совместного использования планировщика var, второго для обмена булевым списком.
После завершения задачи sh Я добавляю для задачи Истина. Таким образом, используя функцию refre sh, которая проверяет этот manager.list (), чтобы найти True внутри. Как только True найден, он сбрасывает список и перезагружает виджеты.
'''SUPPORT FUCTIONS TO TREAT THE MANAGER.LIST'''
def getupdate(schrec):
if len(schrec)>0:
return schrec[-1]
def loadupdate(schrec,sch):
schrec[:]=[]
schrec.append(sch)
def clear_fogt(ogtrec):
ogtrec[:]=[]
ogtrec.append(False)
'''WAITS UNTIL FIND True INSIDE ogtrec ( that is a manager.list() )'''
def refresh():
if True in ogtrec:
clear_fogt(ogtrec)
plot_scheduler()
root.after(1000, refresh)
print('refresh')
'''RUNS THE SCHEDULER'''
def sched_run(schrec,ogtrec):
while True:
#get last update of scheduler var
scheduler = getupdate(schrec)
while len(scheduler.og) == 0:
time.sleep(0.5)
#get last update of scheduler var
scheduler = getupdate(schrec)
print('Scheduler list not empty')
#reload widg some bool change value
ogtrec.append(True)
#RUN
scheduler.send_task_rob()
print('Task is executing')
print(simulation_robot_working(scheduler))
time.sleep(simulation_robot_working(scheduler))
scheduler.check_timing()
print('Checked')
#get last update of scheduler var
scheduler = getupdate(schrec)
scheduler.finish_og()
print('OG updated')
#update scheduler value
loadupdate(schrec, scheduler)
#reload widg
ogtrec.append(True)
print('finished')
print(scheduler.og)