社区
界面
帖子详情
消息重入是如何产生的?工作原理?
CowWu
2003-03-26 03:29:15
rt
...全文
94
5
打赏
收藏
消息重入是如何产生的?工作原理?
rt
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
arxing
2003-03-27
打赏
举报
回复
它把父窗口除了WM_PAINT以外的消息都给屏蔽了,当然,你可以选择确定父窗口可以处理某些消息。
arxing
2003-03-27
打赏
举报
回复
漏了补充,如果在消息处理函数里面进行了消息循环,同样引起消息函数重入。
模式对话框就是包含了一个消息循环,如果你不想父窗口继续处理某些消息,你必须自己写消息循环,不要用API DialogBoxParam或者是MFC CDialog::Domodule()。
例如,这是我写的自定义的CWindowImpl<XXX>的DoModule方法
BOOL DoModule()
{
HWND hParent = ::GetActiveWindow();
Create(hParent);
CenterWindow();
::EnableWindow(hParent, FALSE);
ShowWindow(SW_RESTORE);
SetActiveWindow();
MSG msg;
while(TRUE)
{
while(::PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
{
if(msg.message == WM_QUIT)
{
::EnableWindow(hParent, TRUE);
::SetActiveWindow(hParent);
return FALSE;
}
::GetMessage(&msg, NULL, 0, 0);
if(msg.message == hParent && msg.message != WM_PAINT)
{
continue;
}
::TranslateMessage(&msg);
::DispatchMessage(&msg);
if(!IsWindow())
{
::EnableWindow(hParent, TRUE);
::SetActiveWindow(hParent);
return TRUE;
}
}
else ::WaitMessage();
}
return FALSE;
}
hblsf
2003-03-26
打赏
举报
回复
看看SDK编程就知道了
arxing
2003-03-26
打赏
举报
回复
是由SendMessage引起的。
如果消息发送者线程与窗口线程相同,SendMessage会立即调用窗口消息处理函数,如同处理子函数一样。这就是所谓的消息重入的原因。
如果发送者线程跟窗口线程不一致,消息只在窗口线程调用PeekMessage或者GetMessage时才发送,这时候消息是不会重入的。
CowWu
2003-03-26
打赏
举报
回复
没人会吗?
MQ的基本原理是怎样的?MQ的优点有哪些?MQ的核心概念包括哪些?MQ的
消息
传递模式有哪些?
发布-订阅模式(Publish-Subscribe,简称Pub-Sub):
消息
的发送者将
消息
发布到一个主题(topic)中,
消息
的接收者通过订阅主题来接收
消息
。削峰填谷:MQ可以通过缓冲
消息
的方式来平滑系统的负载。发布-订阅模型:MQ支持发布-订阅模型,即
消息
的发送者(发布者)将
消息
发送到一个或多个主题(topic),而
消息
的接收者(订阅者)通过订阅相应的主题来接收
消息
。
消息
:MQ是用于传递
消息
的系统,
消息
是MQ中的基本单元,它包含要传递的数据以及与该数据相关的一些元数据,如
消息
ID、时间戳等。
消息
队列——ActiveMQ使用及原理浅析
文章目录引言正文一、ActiveMQ是如何
产生
的?
产生
背景JMS规范基本概念JMS体系结构二、如何使用?基本功能
消息
传递P2Ppub/sub持久订阅
消息
传递的可靠性事务型会话与非事务型会话持久化与非持久化
消息
的存储策略
消息
发送策略三、原理浅析发送原理消费原理消费
消息
流程
消息
确认及
消息
重发四、基本优化总结 引言 什么是
消息
中间件?随着业务的急速增长以及分布式架构的逐渐兴起,首先要考虑的就是如何高效的...
网卡
工作原理
详解
网卡
工作原理
详解
Nginx
工作原理
和优化总结。
NGINX以高性能的负载均衡器,缓存,和web服务器闻名,驱动了全球超过 40% 最繁忙的网站。在大多数场景下,默认的 NGINX 和 Linux 设置可以很好的工作,但要达到最佳性能,有些时候必须做些调整。首先我们先了解其
工作原理
。 1. Nginx的模块与
工作原理
Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客...
几率大的网络安全面试题(含答案)
其他篇章:Java校招极大几率出的面试题(含答案)----汇总 本文面试题汇总: 防范常见的 Web 攻击 重要协议分布层 arp协议的
工作原理
rip协议是什么?rip的
工作原理
什么是RARP?
工作原理
OSPF协议?OSPF的
工作原理
TCP与UDP区别总结 什么是三次握手四次挥手? tcp为什么要三次握手? dns是什么?dns的
工作原理
一次完整的HTTP请求过程 Cookies和ses...
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章