社区
其它技术问题
帖子详情
QProcess::terminate()终止进程会关闭进程的线程吗?
饼丿干
2016-07-14 04:14:59
QProcess::terminate()的机制是:
1.采用 EnumWindows() 枚举进程内各个顶级窗口
2.对各个窗口使用 PostMessage() 发送 WM_CLOSE 消息
3.使用 PostThreadMessage() 对其主线程发送 WM_CLOSE 消息
那么调用进程的terminate()能关闭此进程的主线程吗?
...全文
640
回复
打赏
收藏
QProcess::terminate()终止进程会关闭进程的线程吗?
QProcess::terminate()的机制是: 1.采用 EnumWindows() 枚举进程内各个顶级窗口 2.对各个窗口使用 PostMessage() 发送 WM_CLOSE 消息 3.使用 PostThreadMessage() 对其主线程发送 WM_CLOSE 消息 那么调用进程的terminate()能关闭此进程的主线程吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
从
QProcess
说开来(二)
延续前面从
QProcess
说开来(一)的名字,换个角度继续学习。 QIODevice派生类
QProcess
作为QIODevice的派生类,实现角度上看,它必须要重新实现下面两个成员函数: readData()writeData() 而后,按照QIODevice的常规用法,我们 调用QIODevice::open()打开设备使用QIODevice::read()/
Qt
进程
(基本用法)
QProcess
允许您将
进程
视为顺序 I/O 设备。然后,您可以通过调用 write() 来写入
进程
的标准输入,并通过调用 read()、readLine() 和 getChar() 来读取标准输出。由于它继承了QIODevice,因此
QProcess
也可以用作QXmlReader的输入源,或者用于生成使用。
QProcess
提供了一组函数,允许在没有事件循环的情况下使用它,方法是挂起调用
线程
直到发出某些信号。notepad.exe 为记事本,因为该程序的具体目录添加到系统PATH,所以不用具体给出。
【Qt】
QProcess
用法
在上述代码中,start方法用于启动一个外部
进程
。你需要将替换为你要运行的可执行文件的路径。方法
会
阻塞当前
线程
,直到
进程
完成执行。你也可以使用和来等待
进程
开始和产生输出。上述代码将获取
进程
的标准输出。你还可以使用读取标准错误输出。使用finished信号,你可以在
进程
完成时执行某些操作。可以连接到该信号的槽函数,以便在
进程
完成时进行处理。使用方法可以传递参数给外部
进程
。使用write方法可以将数据写入
进程
的标准输入。告诉
进程
输入已完成。使用
terminate
方法
会
向
进程
发送
终止
信号,让
进程
有机
会
进行清理。
QProcess
QProcess
可以用于启动外部程序,具有两种方式。 一体式:
QProcess
::start 方法。 外部程序启动后,将随主程序的退出而退出。 貌似要使用
QProcess
的close方法才可以
关闭
启动的外部程序。 分离式:
QProcess
::startDetached 方法。 外部程序启动后,当主程序退出时并不退出,而是继续运行。 ...
Qt中的
QProcess
与Boost.Interprocess:实现多
进程
编程
QPocess类用于启动和管理外部
进程
。启动外部程序:执行可执行文件,并传递命令行参数与外部进行通信:通过标准输入 输出 和 错误通道交换数据
进程
控制:
终止
暂停 或 恢复
进程
,获取其退出状态同步与异步操作:支持阻塞和非阻塞的
进程
管理方式用法// 创建
QProcess
对象// 连接信号槽以读取输出// 启动外部程序// 检查
进程
是否启动成功if (!信号与槽
QProcess
通过信号和槽机制通知
进程
的各种状态和数据。started():
进程
开始执行时发出。
其它技术问题
3,882
社区成员
9,046
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章