C++ 论qcore应用与QProcess

C++ 论qcore应用与QProcess,c++,linux,qt,C++,Linux,Qt,我正在编写一个QCoreApplication,它应该通过Qprocess创建一个外部进程 我刚刚注意到,即使在执行事件处理程序之前调用了waitForStarted(),并且进程状态为正在运行,外部进程也不会启动,直到在QCoreApplication上调用了exec()方法 也就是说,是否可以将例程的执行推迟到事件处理开始(在其中实例化QProcess),或者唯一可行的方法是创建一次性QTimer 经过一个简短的调查后,出现了处理调用线程的所有挂起事件的方法QCoreApplication:

我正在编写一个QCoreApplication,它应该通过Qprocess创建一个外部进程

我刚刚注意到,即使在执行事件处理程序之前调用了
waitForStarted()
,并且进程状态为
正在运行
,外部进程也不会启动,直到在QCoreApplication上调用了
exec()
方法


也就是说,是否可以将例程的执行推迟到事件处理开始(在其中实例化QProcess),或者唯一可行的方法是创建一次性QTimer

经过一个简短的调查后,出现了处理调用线程的所有挂起事件的方法QCoreApplication::processEvents()。在下面的代码中

int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);

    QProcess abc(....);
    abc.start(...);

    app.processEvents();

    //////////////////////////////////////////////////////
    // is the process really running ? //
    //////////////////////////////////////////////////////

    return  app.exec();
}

对于“进程是否真正正在运行”部分,需要使用这种方法,以便找到abc进程并运行。否则,当事件循环处理启动事件时,abc将启动。

我希望现在更容易理解:-)如果您声明希望在主流程的事件循环启动之前确认外部流程,可能会更清楚。