Python - 终止在 main 中启动的进程



我想知道如何在main中启动一个进程,然后在def函数中终止它。在我的代码中,我有一个运行感兴趣的应用程序的进程,然后是另一个使用 Tkinter 运行简单 GUI 的进程,该进程等待按下 buton。按下此按钮时,我希望终止进程。例如:

def pro_a():
    #Runs the application
def pro_b():
    root.mainloop() # Runs the GUI
def buttonCallBack()
    #I want to terminate the processes here
    #I've tried doing: p1.terminate()
b = Button(frame, .........., command = buttonCallBack)
b.place(......)
if __name__ == '__main__':
    p1 = Process(target=pro_b)
    p2 = Process(target=pro_a)
    p1.start()
    p2.start()

当我尝试这样做时,它给了我错误:AttributeError: 'NoneType' object has no attribute 'terminate'

但是当我尝试在 main 中终止它时,它可以工作。但这不是我想要的。需要明确的是,我需要在 main 中启动进程,然后在按下按钮后结束它们。

不要在子进程中启动pro_b(),只需直接调用pro_b()即可。我认为pro_b()子进程最终没有提及pro_a()子进程。如果直接调用pro_b(),则将从父进程中终止pro_a()子进程。

相关内容

  • 没有找到相关文章

最新更新