我有一个无限循环运行异步,但我不能终止它。下面是我的代码的类似版本:from multiprocessing import Pool
test_pool = Pool(processes=1)
self.button1.clicked.connect(self.starter)
self.button2.clicked.connect(self.stopper)
def starter(self):
global test_pool
test_pool.apply_async(self.automatizer)
def automatizer(self):
i = 0
while i != 0 :
self.job1()
# safe stop point
self.job2()
# safe stop point
self.job3()
# safe stop point
def job1(self):
# doing some stuff
def job2(self):
# doing some stuff
def job3(self):
# doing some stuff
def stopper(self):
global test_pool
test_pool.terminate()
我的问题是stopper函数中的terminate()不起作用。我试着把terminate()放在job1,job2,job3函数中,但仍然不起作用,我尝试将terminate()放在starter函数的循环末尾,同样不起作用。如何停止此异步进程?在
虽然在任何时候停止这个过程已经足够好了,但是有没有可能让它在我想要的地方停止呢?我的意思是,如果给进程一个停止命令(不确定它是什么命令),我希望它完成“安全停止点”标记的步骤,然后终止进程。在