Qt C++重新启动

Qt C++ restart itself

本文关键字:重新启动 C++ Qt      更新时间:2023-10-16

该应用程序内存泄漏,因此作为临时解决方案,我会检查它占用了多少内存,终止进程并重新启动该应用程序。

有什么简单的方法可以做到这一点吗?

谢谢

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

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

QProcess process;
process.startDetached("myApp",QStringList());
qApp->quit();

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

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

另请参阅出色的gimli监视器,在这里:https://bitbucket.org/wez/gimli/wiki/Monitor

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

#include <QApplication>
#include <QProcess>
...
// restart:
qApp->quit();
QProcess::startDetached(qApp->arguments()[0], qApp->arguments());