У меня был очень похожий случай, хотя я работал над linux, встроенным в QT 4.8. Не уверен, что это может вам помочь, но поскольку я не могу добавить комментарий, я должен сделать отдельный ответ.
Установлен ли родитель для QProcess? В моем случае, я инстанцирован QProcess как этот
QProcess *p = new QProcess;
и я мог видеть в списке запущенных процессов, что каждый раз, когда я реализованный новый QProcess, я получил новый процесс, который не может быть закрыт близко(), конец() или kill(). Когда я, наконец, переписал код, как этот
QProcess *p = new QProcess(mainW); //mainW was my GUI class, which handled also the closing of the process
проблема решается сама, я даже не нужно вызвать любую функцию, чтобы закрыть процесс. В моем случае я был уверен, что процессы, которые я назвал, заканчиваются, поскольку почти все они были аудиофайлами, поэтому я слышал, как они заканчивают. Другие были процессами, которые моя программа ждала, чтобы закончить, так что снова я был уверен, что они закончились, потому что моя программа не застряла в ожидании их,
Надеюсь, это поможет, несмотря на разную ОС.
С близким вы просто закончите общение с процессом, вы не убиваете его – demonplus
Что именно * * * 'program.exe' и как вы обычно его завершаете, если запускаете его в командной строке? –
program.exe - это программа, которая запускает параллельный поток для связи с другим IP-адресом. У исполняемого файла есть команда, и я думаю, что буду использовать эту команду, потому что обнаружил, что убийство процесса очень плохое. – Lehtim