从单独的函数检查python线程的状态

2024-04-26 17:46:58 发布

您现在位置:Python中文网/ 问答频道 /正文

目前,我可以运行一个线程,并在线程运行时更新GUI(pyqt5)中的标签项。但是,我想添加有关线程状态的信息,即线程何时开始(标签更新为:'thread initiated')和线程何时结束(标签更新为:'thread complete')。线程启动更新不是问题,因为我可以在线程启动后立即更新标签。但是,线程结束更新有点问题,因为我无法知道线程何时完成。我尝试了thread.join(),不过这会阻止线程运行时标签的动态更新(GUI会冻结,直到线程完成)。我试图从一个单独的函数更新标签,但没有成功

我的当前代码(简称):

def onbuttonpress(self):
    self.label.setText('thread initiated')
    self.simulation() 
    self.label.setText('thread finished')

def simulation(self):
        def sim():
            pythoncom.CoInitialize()


        ------code-----

        self.thread = threading.Thread(target=mt)
        self.thread.start()

除了thread.join()之外,还有其他方法可以在不破坏GUI的情况下工作吗


Tags: self信息状态defgui标签线程thread