QThreads在运行两次时如何工作?

时间:2015-02-24 06:03:39

标签: python python-2.7 pyqt pyside qthread

在另一堂课:

self.workerThread = WorkerThread()

def startThread():
    self.workerThread.setGameName("pizza")
    self.workerThread.start()

QThread课程:

class WorkerThread(QThread):
    def _init_(self, parent = None):
        super(WorkerThread, self)._init_(parent)
        self.gameName = ""

    def setGameName(self, currGameName):
        self.gameName = currGameName

    def run(self):
        #do something with self.gameName

主要:

startThread()
startThread()

当我运行它时,它使用第一次调用的gameName而不是第二次调用。函数调用似乎是交错的。有人可以解释Qthread是如何工作的吗?如何为startThread()的每个函数调用设置gameName?

1 个答案:

答案 0 :(得分:0)

如果在start()上调用QThread两次,那么如果线程仍在运行,则第二次调用将不执行任何操作。看起来很有可能这就是正在发生的事情,如果没有,那只是因为运气。