Python QThread在运行两次时如何工作?
在另一类中:Python QThread在运行两次时如何工作?,python,python-2.7,pyqt,pyside,qthread,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)._ini
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()
当我运行这个时,它使用第一次调用的游戏名,而不是第二次调用的游戏名。函数调用似乎是交错的。有人能解释Qthread是如何工作的吗?如何为startThread()的每个单独函数调用设置游戏名?如果在QThread
上调用了两次start()
,则如果线程仍在运行,则第二次调用将不起任何作用。看起来这很有可能发生,如果不是,那只是运气使然