在另一堂课:
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?
答案 0 :(得分:0)
如果在start()
上调用QThread
两次,那么如果线程仍在运行,则第二次调用将不执行任何操作。看起来很有可能这就是正在发生的事情,如果没有,那只是因为运气。