void processmethodONE()
{
QThread* thread = new QThread;
Prozess.moveToThread(thread);
Prozess.start(ProcessComand);
Здесь вы переместили QProcess в другой поток. Но затем вы вызываете start () для этого. Это уже не потокобезопасно.
while(!Prozess.waitForFinished(2000))
{
std::cerr << "Process running " << std::endl;
}
Это блокирует и делает использование потока бесполезным. Кроме того, это не потокобезопасно.
Вместо этого вы не должны использовать темы, но:
- убрать вызов waitForFinished ()
- Подключите сигналы завершения () и ошибки () QProcess к слотам, которые затем начинают следующий шаг, т.е. processMethodTWO.
Я бы также советовал не использовать объекты QProcess повторно и просто создавать новые для каждого шага.