我的Windows / QT应用程序没有一直退出。
对象清理后,我试图删除QProcess对象。但它并没有清理过程,它可以在任务管理器中显示。
delete process;
process = 0;
我认为删除过程不起作用,因为某些线程在后台运行。我想确保所有线程都正常关闭,因此进程将退出。
请告诉我正确的方法。
答案 0 :(得分:0)
任务管理器不显示您的QProcess对象,删除该对象不会影响任务管理器。如果您的流程中仍有代码正在运行,则该流程将根据操作系统继续存在。
如果确实想要退出该过程,则可以调用Win32函数ExitProcess()
。只要确保你已经保存了你想要的一切。
当所有线程都停止运行时,Qt通常会退出该进程。
答案 1 :(得分:0)
一个问题可能是QProcess对象不代表子线程,它代表一个独立的进程,您可能想要使用QThread对象。
使用QThread对象,您可以使用quit,exit,wait和terminate的某种组合,具体取决于子线程的确切内容,请查看文档以了解差异。