首页 > 解决方案 > 完成后如何重置线程

问题描述

我正在使用 kivy,我正在尝试找到一种方法在完成后“重置”我的线程,尽管我知道重置线程是不可能的。那么,如果我告诉它,我将如何在它之前运行一次之后运行一个线程?我有一个设置了一个按钮的屏幕,当按下该按钮时会运行一个线程 5 秒,然后在 5 秒后返回到原始屏幕,但是如果我在按下按钮后按下按钮,然后我得到一个错误说只能使用线程一次。这是线程的代码。我在屏幕第一次出现时调用它 on_pre_enter()

def countdown1():
    seconds = 5
    for i in range(seconds):
        timeleft = seconds-i
        print(str(timeleft) + " seconds remain")
        time.sleep(1)
    print("out of time")
    sm.current = "Evaluation"
    seconds = 5

countdown1_thread = threading.Thread(target = countdown1)

标签: pythonmultithreadingkivy

解决方案


尝试更换

countdown1_thread.start()

和:

threading.Thread(target = countdown1).start()

推荐阅读