社区
进程/线程/DLL
帖子详情
除了钩子以外,还有没有方法取得其他线程的消息?
w_anthony
2007-08-10 04:27:28
遇到的问题是这样的,主线程执行某一函数会卡3秒左右。而我想让他在卡的这段时间内消息处理能依然如故,所以想在执行函数前开一子线程负责处理主线程的消息,执行完毕PostThreadMessage发一个WM_QUIT让子线程退出!
除了钩子以外,还有没有方法取得其他线程的消息?
...全文
136
9
打赏
收藏
除了钩子以外,还有没有方法取得其他线程的消息?
遇到的问题是这样的,主线程执行某一函数会卡3秒左右。而我想让他在卡的这段时间内消息处理能依然如故,所以想在执行函数前开一子线程负责处理主线程的消息,执行完毕PostThreadMessage发一个WM_QUIT让子线程退出! 除了钩子以外,还有没有方法取得其他线程的消息?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
w_anthony
2007-08-11
打赏
举报
回复
终于搞定了,只有把执行函数拆的七零八落,把创建窗口的代码扔给主线程,而子线程只负责开启摄像头的pin连接操作,就没问题了。不过互斥还是比较麻烦一点,OK了
Winner25
2007-08-11
打赏
举报
回复
感觉是你程序结构安排的问题,你那个3秒的任务安排一个线程,两个线程之间用消息啥的通行,不久ok了!
主线程都堵塞了,那还有消息!没有消息去取也没有用!
w_anthony
2007-08-11
打赏
举报
回复
到底有没有方法可以取其他线程的消息呢?
那个会卡3秒的执行函数,是用于开启摄像头的,原来执行失败,是因为该线程com没有初始化,后来我初始化了一下,单步跟踪发现它确实是执行成功了,只是捕捉的画面就是出不来。
后来才发现画面出不来是因为捕捉窗口是有子线程创建的,所以只有子线程才能处理它的消息,在该子线程里面加入消息循坏,画面总算是出来了,但是这个子线程就必须一直开在那里才行。本来是想子线程开一下马上关闭的,这样又要多管理一条线程,感觉很不好!
w_anthony
2007-08-11
打赏
举报
回复
To Winner25(如果我们走得太快,停一停,让灵魂跟上来)
主线程是堵了,但是窗口消息还是会被扔到消息队列里面去的,如果可以让子线程来处理主线程的窗口消息,那还是没有问题的。
把执行函数扔到子线程里面,就需要该执行函数不包含窗口创建的动作,如果子线程创建了窗口,那么这个窗口的消息就会储存在子线程的消息队列里面,这样子线程就不可以退出了,因为如果它退出的话,这个窗口的消息就没有任何线程可以响应了。
w_anthony
2007-08-10
打赏
举报
回复
如果让主线程负责窗口消息,可能会因为MessageBox和DoModal接手消息处理,导致开启线程的地方无法继续执行下去。
刚才试了一下,把执行函数放到线程里面,然后在结束的时候,PostThreadMessage发一个WM_QUIT给主线程,主线程原先处于GetMessage的循环,收到WM_QUIT后,会退出GetMessage循环,进入PeekMessage循环,让PeekMessage取走WM_QUIT的,结果消息确实可以继续处理了,不过那个执行函数一放到线程里面,就会执行失败,郁闷……
dyw
2007-08-10
打赏
举报
回复
让主线程仍负责窗口消息,创建新线程来执行长时间的任务,执行结束后通知主线程。
w_anthony
2007-08-10
打赏
举报
回复
如果有什么方法可以从消息队列里面取走WM_QUIT消息也可以。
w_anthony
2007-08-10
打赏
举报
回复
刚才试了一下,钩子也不行,郁闷。
“执行函数”开一个新的线程也是行不通的。
主线程需要执行函数的返回值,虽然主线程可以在等待函数返回值的时候用GetMessage之类的处理消息,但如果等待期间有MessageBox或者DoModal的话,就会接手原先等待的GetMessage循环,这样一来,主线程就不能在执行函数结束后继续执行下面的语句了。
alq974120alq
2007-08-10
打赏
举报
回复
你为什么不把“执行函数”开一个新的线程呢?
Windows进程常用DLL模块注入技术
窗口
消息
注入,指定窗口进程注入,与全局
钩子
注入类似。 环境块注入,获取进程上下文信息,直接性修改程序执行流程完成注入。 进程入口点注入,在程序初始化的时机前将dll模块文件注入至目标主
线程
。 进程调试级...
java多
线程
相关问题汇总
1、
线程
和进程的关系 根本区别:进程是操作系统资源分配的基本单位,而
线程
是处理器任务调度和执行的基本单位。 资源开销:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;
线程
...
钩子
的使用
钩子
函数的用法和作用? http://topic.csdn.net/t/20020625/10/827891.html WINDOW的
消息
处理机制为了能在应用程序中监控系统的各种事件
消息
,提供了挂接各种反调函数(HOOK)的功能。这种挂钩函数(HOOK)类似扩充...
动态连接库和
钩子
动态连接库和
钩子
需要解决的几个问题:1. 了解动态连接库的性质2. 如何编写动态连接库3. 如何调用动态连接库4. 什么是
钩子
以及
钩子
的类型5. 远程
钩子
的安装和使用6. 日志
钩子
7. API
钩子
一. 什么是动态连接库...
【Java基础系列教程】第十二章 Java多
线程
(下)_
线程
组、ThreadLocal、
线程
池
一、使用Callable接口创建
线程
二、
线程
组 三、ThreadLocal 四、
线程
池:概述、原理、完整结构、流程、分类、案例 五、面试题
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章