Есть ли способ в Qt прекратить действие a'la TerminateProcess
текущего процесса?Qt: убить текущий процесс?
QProcess::kill(), похоже, применим только к другим внешним процессам.
Есть ли способ в Qt прекратить действие a'la TerminateProcess
текущего процесса?Qt: убить текущий процесс?
QProcess::kill(), похоже, применим только к другим внешним процессам.
Просто позвоните TerminateProcess напрямую, или если вы хотите что-то платформа независим: exit()
Вот мой код для Win/Mac/Linux, хотя и не портативный для других операционных систем.
void killMe()
{
#ifdef Q_OS_WIN
enum { ExitCode = 0 };
::TerminateProcess(::GetCurrentProcess(), ExitCode);
#else
qint64 pid = QCoreApplication::applicationPid();
QProcess::startDetached("kill -9 " + QString::number(pid));
#endif // Q_OS_WIN
}
Неужели это действительно нужно убить? Недостаточно ли 'QCoreApplication :: exit()'? –
Я думаю, что люди QT не думали об этом обернуть. Возможно, вам придется запрограммировать нужные вам API-интерфейсы платформы. – asveikau
@Lukas Да, после вызова я не хочу возвращаться к циклу событий, и на самом деле я даже не хочу, чтобы что-то было уничтожено. – shoosh