我在从我的 C++ 程序执行的进程的解构函数中放置了一个看门狗停止函数。每次我使用该进程 QT GUI 上的“X”按钮关闭时,它将通过我放置在解构器中的代码运行。但是当我尝试执行 Qprocesskill/close/terminate 来终止我的 C++ 程序中的进程时,(进程的)解构器中的代码没有被执行。任何人都知道出了什么问题或有其他方法来关闭该过程?谢谢!!!
顺便说一句,我在 linux 上。
最佳答案
当带有这些函数的进程突然退出时,没有对象被拆除。它们等同于 C 函数 exit(1)。尝试通过调用 QApplication::quit () 优雅地退出 QApplication::exec 的事件循环,这将退出 exec 内的主事件循环并允许 main 正常退出并允许所有通常会在此时自行销毁的对象执行所以。
关于linux - 为什么 QProcess 不 kill,close,terminate 调用进程的析构函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13640239/