我在GUI上有一个按钮来启动一个具有while循环的进程,因为它的Schedule是基于时间的。但是,一旦单击该按钮,GUI就会挂起,但是实际程序仍在后台运行。
def start(root, period=0):
schedule.every(float(delay)).hours.do(start)
while True:
schedule.run_pending()
root.after(30000, print("WAITING 30 SECONDS..."))
我希望能够在后台循环进行时继续使用菜单。
答案 0 :(得分:0)
您不应使用这样的无限循环。而是使用after
来按时间表呼叫run_pending
。
例如,如果您想每三十秒轮询一次未决事件,它可能看起来像这样:
def start(root, period=0):
schedule.every(float(delay)).hours.do(start))
poll_schedule(schedule)
def poll_schedule(root, schedule)
schedule.run_pending()
print("WAITING 30 SECONDS...")
root.after(30000, poll_schedule, root, schedule)