我有一个PYSide2大型机,当我点击按钮创建一个进程名TTT时,我认为当我关闭大型机时进程也关闭了,但它不是。
我该怎么办?
class Test7(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.setupUi()
def setupUi(self):
...(not important code here)...
self.pushButton.clicked.connect(self.btnClicked)
def btnClicked(self):
ttt = TTT('aaa')
ttt.deman = False
ttt.start()
class TTT(multiprocessing.Process):
def __init__(self, name):
multiprocessing.Process.__init__(self)
print('nothing to do')
def run(self):
while True:
print('abc')
time.sleep(10)
if __name__ == "__main__":
app = QApplication(sys.argv)
w = Test7()
w.show()
sys.exit(app.exec_())发布于 2017-10-17 08:02:07
您可以将daemon设置为True。
进程的守护进程标志,一个布尔值。必须在调用start()之前设置它。 初始值是从创建过程继承的。 当进程退出时,它尝试终止其所有守护进程子进程。 请注意,不允许守护进程创建子进程。否则,如果守护进程在父进程退出时被终止,则守护进程将使其子进程成为孤儿。此外,这些不是Unix守护进程或服务,它们是正常进程,如果非守护进程已经退出,它们将被终止(而不是加入)。
以你的片段为例:
class TTT(multiprocessing.Process):
def __init__(self, name):
multiprocessing.Process.__init__(self)
self.daemon = True
print('nothing to do')
def run(self):
while True:
print('abc')
time.sleep(10)https://stackoverflow.com/questions/46785153
复制相似问题