社区
进程/线程/DLL
帖子详情
什么是消息循环?
super_pi
2010-04-04 08:32:22
到底什么是消息循环,是不是专门的一个线程来负责接收消息?
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
这段代码究竟是谁来执行?是创建窗口的线程吗?
我概念有点问题,麻烦教教,谢谢
...全文
166
9
打赏
收藏
什么是消息循环?
到底什么是消息循环,是不是专门的一个线程来负责接收消息? while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg) ; DispatchMessage (&msg) ; } return msg.wParam ; 这段代码究竟是谁来执行?是创建窗口的线程吗? 我概念有点问题,麻烦教教,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
keepdoingit
2010-04-05
打赏
举报
回复
不是"专门的线程." 你可以看一下,一个最简单的SDK程序没有另外开线程,只有一个系统为它创建的主线程.在这里接收消息,处理消息. 你找一下"深入浅出MFC"里面的 图1-2.
super_pi
2010-04-05
打赏
举报
回复
[Quote=引用 3 楼 sullensun 的回复:]
开2个贴。。。
[/Quote]
我不知道该放哪。。。
在问下,是不是就是创建窗口的那个线程?
DispatchMessage (&msg) ;这到底是干嘛的?
谢谢
哈利路亚1874
2010-04-05
打赏
举报
回复
我的理解:消息循环是由主线程负责,从消息队列中得到消息后分发给每个窗口处理函数
blueink_200451
2010-04-05
打赏
举报
回复
[Quote=引用 5 楼 wltg2001 的回复:]
每一个线程如果有需要的话,系统就会为这个线程建立一个消息队列,而线程中通过
while (GetMessage (&msg, NULL, 0, 0))...
这段代码从消息队列中取得消息。
这段代码由谁来执行这个问题楼主一定是糊涂了,当然是写在什么地方,就由谁来执行了,你写在主线程的消息循环当然由主线程来执行,写在另一个线程中的消息循环自然由这个线程来执行了。
感觉楼主将消息队列和……
[/Quote]up
zxdyu2009
2010-04-05
打赏
举报
回复
http://www.sunxin.org/video/vc.htm
看孙鑫老师的第一讲,可以在线观看,也可以下载下来看。
wltg2001
2010-04-05
打赏
举报
回复
每一个线程如果有需要的话,系统就会为这个线程建立一个消息队列,而线程中通过
while (GetMessage (&msg, NULL, 0, 0))...
这段代码从消息队列中取得消息。
这段代码由谁来执行这个问题楼主一定是糊涂了,当然是写在什么地方,就由谁来执行了,你写在主线程的消息循环当然由主线程来执行,写在另一个线程中的消息循环自然由这个线程来执行了。
感觉楼主将消息队列和消息循环弄混淆了。
SullenSun
2010-04-04
打赏
举报
回复
开2个贴。。。
WaistCoat10
2010-04-04
打赏
举报
回复
第一个线程来执行
Kudeet
2010-04-04
打赏
举报
回复
通常不是专门一个线程接收消息!
如果你想你的线程能接收消息,就需要这个线程包含这样的代码执行循环!
通常这个代码是给主线程去执行的,一般是创建窗口的线程!
消息循环的代码是负责接收分发消息...如果线程需要处理界面元素,通常需要创建窗口,执行这样的消息循环代码。
Android应用程序
消息
处理机制
这个PPT讲Android应用程序线程
消息
循环
原理,主要涉及到Handler和Looper两个类,以及根据
消息
循环
的不同使用场景,总结出三种线程使用模型。掌握Android应用程序
消息
处理机制,有助于我们熟练地使用同步和异步编程,...
Android应用程序输入事件处理机制
在Android应用程序中,有一类...这个PPT讲Android应用程序输入事件的分发和处理过程,主要涉及到输入管理InputManager、输入事件监控线程InputReader、输入事件分发线程InputDispatcher,以及应用程序主线程
消息
循环
。
消息
循环
机制及其原理
一、什么是
消息
循环
消息
循环
概述:Android的
消息
循环
是针对线程的,每个线程都可以有自己的
消息
队列和
消息
循环
,通过
消息
循环
可实现线程间通信。在Android线程内,可以通过
消息
循环
的机制以队列的方式实现
消息
的...
【Android面试】主线程中的Looper.loop()一直无限
循环
为什么不会造成ANR?
2、Looper为什么要无限
循环
? 3、线程的几种状态 4、主线程中的Looper.loop()一直无限
循环
为什么不会造成ANR? 1、什么是ANR?ANR发生的原因是什么? ANR即Application Not Responding,顾名思义就是应用程序无...
什么是
循环
依赖以及解决方式
1.什么是
循环
依赖? 它发生在bean A依赖于另一个bean B时,bean B依赖于bean A: 豆A→豆B→豆A 当然,我们可以有更多的暗示: 豆A→豆B→豆C→豆D→豆E→豆A 2.春天会发生什么 当Spring上下文加载所有bean时...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章