Qt文档给出以下解释:
QProcess::start
:在新进程中启动指定程序,如果没有进程正在运行,则将命令行参数传递到参数中。
QProcess::startDetached
:在新进程中使用参数arguments启动程序program,并与之分离。
这两者的区别是什么?仅仅是使用QProcess::start
只能启动一个程序实例,而使用QProcess::startDetached
可以启动多个实例吗?
如果您使用start
,调用进程的终止也将导致被调用进程的终止。 如果您使用startDetached
,则在调用者终止后,子进程将继续运行。例如:
QProcess * p = new QProcess();
p->start("some-app");
delete p;// <---some-app will be terminated
QProcess * p = new QProcess();
p->startDetached("some-app");
delete p;// <---some-app will continue to live
start()函数是一个成员函数,而startDetached是一个静态类函数。
如果您查看QProcess的文档,您会发现有一些函数可以让您对进程执行操作,例如:-
startDetached
? - Sigur