2

我的 windows/QT 应用程序没有持续退出。

对象清理后,我试图删除 QProcess 对象。但它不是清理进程,它可以显示在任务管理器中。

    delete process;
    process = 0;

我认为删除过程不起作用,因为有些线程在后台运行。我想确保所有线程都正常关闭,因此进程将退出。

请让我知道执行此操作的正确方法。

4

2 回答 2

0

任务管理器不会显示您的 QProcess 对象,删除该对象不会影响任务管理器。如果您的进程中仍有代码在运行,则该进程将根据操作系统继续存在。

如果实在想退出进程,可以调用Win32函数ExitProcess()。只要确保你已经保存了你想要的一切。

当所有线程停止运行时,Qt 通常会退出进程。

于 2012-05-14T19:37:33.250 回答
0

一个问题可能是 QProcess 对象不代表子线程,它代表一个独立的进程,您可能想使用QThread对象。

使用 QThread 对象,您可以根据子线程的确切内容使用退出、退出、等待和终止的某种组合,请查看文档以了解差异。

于 2012-05-14T19:40:46.977 回答