我试着在QThread类中使用
self.terminate()
,也在GUI类中使用
self.thread.terminate()
。我还试着在这两种情况下放入
self.wait()
。然而,有两种情况会发生。
1)线程根本没有终止,GUI冻结了,等待线程结束。一旦线程结束,GUI就会解冻,一切恢复正常。
2)该线程确实终止了,但同时它冻结了整个应用程序。
我还试着用
self.thread.exit()
。没有喜悦。
为了进一步澄清,我正试图在GUI中实现一个用户中止按钮,它将在任何时间点终止线程的执行。
提前感谢。
EDIT:
Here is the
run()
method:
def run(self):
if self.create:
print "calling create f"
self.emit(SIGNAL("disableCreate(bool)"))
self.create(self.password, self.email)
self.stop()
self.emit(SIGNAL("finished(bool)"), self.completed)
def stop(self):
#Tried the following, one by one (and all together too, I was desperate):
self.terminate()
self.quit()
self.exit()
self.stopped = True
self.terminated = True
#Neither works
而这里是GUI类中止线程的方法。
def on_abort_clicked(self):
self.thread = threadmodule.Thread()
#Tried the following, also one by one and altogether:
self.thread.exit()
self.thread.wait()
self.thread.quit()
self.thread.terminate()
#Again, none work