Qt C ++重启自己

时间:2013-09-27 21:52:53

标签: c++ qt restart

该应用程序是内存泄漏,所以作为临时解决方案,我会检查它需要多少内存,终止进程并重新启动应用程序。

有没有简单的方法呢?

谢谢

3 个答案:

答案 0 :(得分:1)

你应该修复内存泄漏。如果要重新启动应用程序,可以使用QProcess::startDetached在新进程中运行应用程序实例并从中分离。之后你应该退出申请。

这将重新启动您的应用程序:

QProcess process;
process.startDetached("myApp",QStringList());

qApp->quit();

此处myApp是应用程序的可执行文件的名称。在Windows上,它可以是myApp.exe

答案 1 :(得分:0)

您可以覆盖new和delete以保留程序的分配统计信息,然后根据可用的mem,abort()达到阈值时。然后在外部脚本中重启。

另请参阅优秀的gimli显示器,此处:https://bitbucket.org/wez/gimli/wiki/Monitor

答案 2 :(得分:0)

要自行重启应用程序,请尝试:

#include <QApplication>
#include <QProcess>

...

// restart:
qApp->quit();
QProcess::startDetached(qApp->arguments()[0], qApp->arguments());