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())中调用这些函数,可能会造成当前用户界面不响应。
(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())中调用这些函数,可能会造成当前用户界面不响应。
相关文章推荐
- 启动service的两种方式:startService与bindService的区别
- 启动service的两种方式:startService与bindService的区别
- Android 启动 Service(startservice和bindservice) 两种方式的区别
- Android 启动 Service(startservice和bindservice) 两种方式的区别
- 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结
- 启动Activity的两种方式startActivity和startActivityForResult(一)
- Android Service 两种启动方式的区别
- Android Service 两种启动方式的区别
- Android 两种启动Service(远程)的方式:Bind 与Start
- Android -- service两种启动方式startService与bindService
- service 两种启动方式的区别
- 两种方式创建docker镜像的启动容器时区别介绍(总结篇)
- service的两种启动方式和区别
- (常面试的面试题)Service的两种启动方式的区别?
- Service的两种启动方式及其之间的区别
- 启动Activity的两种方式startActivity和startActivityForResult(二)
- Android Service 两种启动方式的区别
- thread两种启动方式的区别
- Android之B面试题①服务两种启动方式的区别
- 停止通过startService()方式启动的service的两种方法