windows为什么要有消息机制

yayexing 2013-04-28 12:43:36
windows为什么要有消息队列,和消息循环,直接把相应的消息发给对应的程序不行吗
...全文
183 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
baichi4141 2013-05-02
  • 打赏
  • 举报
回复
没有消息机制,哪来的“发消息给对应程序” “发送消息”这个概念本身就是建立在消息机制的基础上
wumn29 2013-05-02
  • 打赏
  • 举报
回复
SendMessage就是把消息发送到应用程序, 前提是知道这个应用程序的窗口句柄。
yayexing 2013-04-30
  • 打赏
  • 举报
回复
我就是想问一下windows消息机制的好处,为什么要用这样的机制,我直接在感知到用户的操作的时候把消息发给程序(程序里面有消息队列),这样有什么弊端。
yayexing 2013-04-30
  • 打赏
  • 举报
回复
引用 8 楼 weiql6 的回复:
任务多了怎么办,这样系统会混乱的。
能说的具体些吗
yayexing 2013-04-30
  • 打赏
  • 举报
回复
引用 6 楼 Mackz 的回复:
“直接把相应的消息发给对应的程序”,我不知道你这话是什么意思,不然是发给谁了? 假如你的意思是直接调用某个程序(进程/线程)的功能函数,那么存在两个问题: 第一:该程序必须实现所有的函数(接口),即使它不需要这么多功能;而消息机制是由程序自己决定是否处理相应消息; 第二:如果调用的函数出问题,系统就甭了; 当然还有更好更先进的事件机制,但是从整个系统设计的考虑以及历史遗留问题,消息机制还是不错的,毕竟Windows诞生的年代已经远超现在很多编程者了。
我的意思是说操作系统感知到用户的操作马上就把消息发给程序,程序再自己决定是否处理相应消息;这样不是也可以吗。
weiql6 2013-04-28
  • 打赏
  • 举报
回复
任务多了怎么办,这样系统会混乱的。
信阳毛尖 2013-04-28
  • 打赏
  • 举报
回复
引用 3 楼 tiger9991 的回复:
因此个人认为消息队列的功能: 1为缓冲 2为设置消息权重
消息众多,可能你感觉不到,如果你操作频繁,1s中会产生N个消息,然而对每种消息的处理不是瞬间都能完成的,你不搞个地方保存起来,那不就丢失了么?简单的理解,消息队列就是产生消息时push进去,然后一条一条的pop进行处理 另外,消息也是有优先级的,我们可一个调整消息队列中消息的处理优先级,比如我们如果需要让窗口理解重绘,就可以通过UpdateWindow( )函数,而不是 Invalidate()
菜牛 2013-04-28
  • 打赏
  • 举报
回复
“直接把相应的消息发给对应的程序”,我不知道你这话是什么意思,不然是发给谁了? 假如你的意思是直接调用某个程序(进程/线程)的功能函数,那么存在两个问题: 第一:该程序必须实现所有的函数(接口),即使它不需要这么多功能;而消息机制是由程序自己决定是否处理相应消息; 第二:如果调用的函数出问题,系统就甭了; 当然还有更好更先进的事件机制,但是从整个系统设计的考虑以及历史遗留问题,消息机制还是不错的,毕竟Windows诞生的年代已经远超现在很多编程者了。
edwardliqi 2013-04-28
  • 打赏
  • 举报
回复
我觉得我吧 1. 缓存 2. 各个模块间更独立,要不然我靠你发一个我就得接一个,设计师太2了
Eleven 2013-04-28
  • 打赏
  • 举报
回复
消息队列起个缓存消息的作用,应用程序从消息队列中取一条条消息,然后依次执行。比如鼠标键盘消息都是入队列的消息。
傻X 2013-04-28
  • 打赏
  • 举报
回复
因此个人认为消息队列的功能: 1为缓冲 2为设置消息权重
傻X 2013-04-28
  • 打赏
  • 举报
回复
没有消息队列直接响应的话,你机器来得及处理么?一旦任务多起来,你怎么分处理的优先级呢?
yayexing 2013-04-28
  • 打赏
  • 举报
回复
大侠呢,怎么没人帮忙回呢。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧