进程挂起后,为何还能处理刷新消息?
时间:2011-11-21
来源:互联网
如果要挂起进程A,获取进程A的ID,然后调用CreateToolHelp32Snapshot获得这个进程的快照,然后用Thread32First和Thread32Next来遍历这个进程中的所有线程。再用OpenThread来打开线程,最后用SuspendThread来把这个进程的所有线程都挂起。
在实验《Windows核心编程》(第四版)7.2中的 进程的挂起和唤醒 章节中的实验的时候,我挂起了一个进程A,但是我发现,尽管进程A不能处理WM_TIMER之类的消息,但是还能处理WM_PAINT之类的消息。按照我的理解,把这个进程挂起来之后,系统应该不会再分给这个进程时间片,也就是说,这个进程不能处理任何消息,那为什么还能处理WM_PAINT消息呢?
作者: tanxiqiao 发布时间: 2011-11-21
如果在你去的快照后的瞬间,又启动线程,在新启动的线程则不会挂起
你的情况应该不存在这个可能,可能在你挂起线程的时候,把挂起操作的线程先挂起了,导致部分线程没有挂起
作者: sky101010ws 发布时间: 2011-11-22
作者: tanxiqiao 发布时间: 2011-11-22
作者: tanxiqiao 发布时间: 2011-11-24
作者: tanxiqiao 发布时间: 2011-11-30
作者: mfc168 发布时间: 2011-11-30
作者: Kaile 发布时间: 2011-11-30
你挂起的仅是用户线程,而对于界面刷新、WM_CLOSE等等,属于该进程内部消息处理机制,并不是线程处理的,所以无法挂起,一定会响应的
能不能详细解释一下,我感觉都是在一个线程里面处理的,进程内部的消息处理机制不也是在线程里处理的吗?
作者: tanxiqiao 发布时间: 2011-11-30
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28