您的位置:首页 > 其它

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

2017-07-16 12:19 615 查看
一、启动外部程序的两种方式:

(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())中调用这些函数,可能会造成当前用户界面不响应。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: