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

时间:2015-07-01 16:01:36

标签: c++ qt

我将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命令工作,我可以在我的应用程序中看到输出。

1 个答案:

答案 0 :(得分:2)

来自Qt docs:

  

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