我有一个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_())
答案 0 :(得分:0)
您可以将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)