我研究Qthread。当qthread发出信号完成时我很困惑。退出运行功能时信号是否完成?
class TestThread(QtCore.QThread):
customSignal = QtCore.pyqtSignal(['QString'])
def __init__(self):
QtCore.QThread.__init__(self)
def run(self):
print 'some code in run functions... '
self.customSignal.emit('OK')
print 'after this istruction qthread emit instantly finished signal?'
在运行函数中,我发出被其他类拦截的自定义信号。在其他类中,我收到一个信号,我还检查Qthread是否运行:
print 'TestThread is running? - ', self.myTestTh.isRunning()
有时打印真实!!! 因此,当退出运行功能时,Qthread似乎无法立即完成 那么,我是否可以拦截完成的信号以确保Qthread没有运行?
答案 0 :(得分:6)
QThread为finished()
信号,如果您希望在线程实际退出时收到通知,您可以收听。
你也可以这样做:
myThread.quit();
myThread.wait();
对wait()
的调用将阻塞,直到你的线程正确完成。