QProcess中的start和startDetached两种启动方式的区别

一、启动外部程序的两种方式:

(1)一体式:void QProcess::start(const QString & program, const QStringList & arguments, OpenMode mode = ReadWrite)

        外部程序启动后,将随主程序的退出而退出。
(2)分离式: void  QProcess:: startDetached( const QString & program, const QStringList & arguments, const QString & workingDirectory = QString(), qint64 * pid = 0 )

        外部程序启动后,当主程序退出时并不退出,而是继续运行。

二、Synchronous Process API (同步进程API)
    QProcess提供了一系列的函数以提到事件循环来完成同步操作:
(1)waitForStarted()          : 阻塞,直到外部程序启动
(2)waitForReadyRead()    : 阻塞,直到输出通道中的新数据可读
(3)waitForBytesWritten()  : 阻塞,直到输入通道中的数据被写入
(4)waitForFinished()        : 阻塞,直到外部程序结束
如果在主线程(QApplication::exec())中调用这些函数,可能会造成当前用户界面不响应。

你可能感兴趣的:(QProcess中的start和startDetached两种启动方式的区别)