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