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

来源:互联网 发布:himall2.8官方版源码 编辑:程序博客网 时间:2024/06/03 15:22

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

(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())中调用这些函数,可能会造成当前用户界面不响应。

阅读全文
0 0
原创粉丝点击