如果我再次调用QProcess::start()会发生什么

What happens if I call QProcess::start() again?

本文关键字:什么 start 调用 QProcess 如果      更新时间:2023-10-16

我已将QProcess * process声明为类成员,并在构造函数中使用"process=new QProcess"进行分配。现在,当用户按下一个按钮时,我开始这个过程。

void MainWindow::rsync()
{
    process->start("rsync c:\test\sync1 root@10.0.0.1:/Test");
    // additionally what will happen if I do this
    // process->start("ping root@10.0.0.1");
}

现在同步可能需要30秒,如果我在这段时间内再次按下按钮会发生什么?如果我在第一次同步完成后再次按下按钮,会发生什么?我可以在我分配过一次的QProcess对象上再次调用start()方法吗?还是必须删除它并重新分配它?

我询问的部分原因是第一个start命令不太起作用(rsync似乎被阻止或不显示任何消息),但第二个start()ping命令起作用,我可以在应用程序中看到输出。

来自Qt文档:

如果QProcess对象已经在运行一个进程,则可能会在控制台上打印警告,并且现有进程将继续不受影响地运行。