2015-02-24 35 views
0

在另一大類:QThreads在運行兩次時如何工作?

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

如果在QThread上調用start()兩次,那麼如果線程仍在運行,則第二個調用將不執行任何操作。看起來好像這是發生的事情,如果不是,那只是因爲運氣。

相關問題