QProcess调用外部程序方式的差异
2016-06-28 20:12
363 查看
众所周知QProcess类的作用是启动一个外部的程序并与之交互它有三种方式调用外部程序:
1. execute
2. start
3. startDetached
从调用上看:
execute是阻塞调用, 并且继承了调用者环境变量和工作目录(The environment and working directory are inherited from the calling process.)
start则是异步调用,而非阻塞调用.
startDetached呢则是运行外部程序并且脱离调用程序. 说起来有点饶口,简单点说就是外部程序在被调用后就和调用程序没有毛毛关系了,即便是关闭调用程序,外部程序也不会被关闭.
从与外部程序交互上看:
直接使用execute调用外部程序是没办法对其进行交互的,因为程序直接阻塞在那里了.
使用start是可以和外部程序进行交互的
使用startDetached也是不能和外部程序进行交互,因为已经脱离调用程序了.
总结:
1. execute
2. start
3. startDetached
从调用上看:
execute是阻塞调用, 并且继承了调用者环境变量和工作目录(The environment and working directory are inherited from the calling process.)
start则是异步调用,而非阻塞调用.
startDetached呢则是运行外部程序并且脱离调用程序. 说起来有点饶口,简单点说就是外部程序在被调用后就和调用程序没有毛毛关系了,即便是关闭调用程序,外部程序也不会被关闭.
从与外部程序交互上看:
直接使用execute调用外部程序是没办法对其进行交互的,因为程序直接阻塞在那里了.
使用start是可以和外部程序进行交互的
使用startDetached也是不能和外部程序进行交互,因为已经脱离调用程序了.
总结:
调用 | 交互 | |
execute | 同步调用 | 不可 |
start | 异步调用 | 可 |
startDetached | 异步调用 | 不可 |
相关文章推荐
- Fusionchart Flex各属性释义
- android 5.0新特性 上滑关闭Toolbar
- 网络API下获取天气json数据信息
- 网站后端.Flask.实战-社交博客开发-资料信息?
- Delphi OleVariant 类型的用法
- HDU 1839 Delay Constrained Maximum Capacity Path 二分+最短路
- 多个协程的调用顺序,以及Update和Start的关系
- IE条件注释
- VirtualBox虚拟机全屏显示
- 几个在线的维恩图制作站点
- shell脚本 sed工具练习
- 【MFC入门】之三 标准控件在可视化编程中的应用之组合框控件
- Swift Study Day 2
- 线性表-顺序表、链表类模板的实现(数据结构基础 第2周)
- hdu 2521 反素数(打表)
- FMDB简单实现
- HDU 1465 (错排公式)
- Android中的Drawable资源—— VectorDrawable
- [Leetcode]234. Palindrome Linked List
- 网易公开课学习-认识前端,从一个弹窗案例说起