不解之谜,WINDOWS 对键盘的响应是忽发的还是循环监听的?

woodangel 2014-01-22 01:34:22
循环监听就是有一个消息循环不断询问,有没有键盘消息,如果有就接受这个消息,就好像你每天都去查询有没有你亲人的来信,如果有就去取信。
忽发执行就好像,别人在你背后拍了一下就就感觉有人拍你了,你大脑不会一直监听“有没有人拍我有没有人拍我”拍了你你才有反应。
我看了很多书有些书说,WINDOWS背后有一个消息循环机制,是不断循环监听消息的,键盘有输入的消息才会接受,有些书又说WINDOWS 对键盘这类消息是忽发执行的,并没有循环监听,只要有输入键盘的消息,马上就接受,平时的时候没有后台不断循环监听消息。到底哪个是对的?
...全文
396 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
woodangel 2014-01-22
  • 打赏
  • 举报
回复
是不是可以这样理解,硬件的中断属于硬事件。软件的事件机制,属于软事件,是一个FOR循环的消息循环监听出来的。而硬件的中断,也有消息循环,不过可是量子力学范围的消息循环属于光速循环。
  • 打赏
  • 举报
回复
引用 4 楼 woodangel 的回复:
已经经过官方权威证实是键盘输入忽发执行,不是一直循环监听。没有键盘输入,WINDOWS就处于休眠状态,输入就接受消息。谢谢上面回答
windows桌面(windows其它平台则不太一样)操作系统会以抢先式多任务方式调度各种线程(同时也就是调度了各个进程)。基于这个理由,所以进程可以写一个“循环”来处理从底层设备驱动推入的消息。 因此你不能知道了一个,就否定另外一个。操作系统中断、分层、消息,以及应用程序中循环处理消息,这些说法其实“都是对的”!但是处于各自不同的那个职责范围内。
  • 打赏
  • 举报
回复
什么基础知识都纠结到.net里边,或者.net的知识都说成是c#语言的,这就越来越像是仅靠社会培训班培训一下就匆匆上岗的工人了。
  • 打赏
  • 举报
回复
引用 3 楼 tangyanzhi1111 的回复:
C# 里面也有,但是封装的你根本看不见了。而且它也不让你看见。
程序员如果把学上好,有好几年时间学习这类基础知识。不要等到什么.net里边去学习所有的基础知识。 另外,不要把.net叫做c#。c#不过是一个编程语言而已。
woodangel 2014-01-22
  • 打赏
  • 举报
回复
每天去看有没有你的信是循环监听。 告诉邮递员有你的信就给你电话,是忽发执行
风吹腚腚凉 2014-01-22
  • 打赏
  • 举报
回复
引用 4 楼 woodangel 的回复:
已经经过官方权威证实是键盘输入忽发执行,不是一直循环监听。没有键盘输入,WINDOWS就处于休眠状态,输入就接受消息。谢谢上面回答
问的盖茨?
woodangel 2014-01-22
  • 打赏
  • 举报
回复
已经经过官方权威证实是键盘输入忽发执行,不是一直循环监听。没有键盘输入,WINDOWS就处于休眠状态,输入就接受消息。谢谢上面回答
江湖评谈 2014-01-22
  • 打赏
  • 举报
回复
C# 里面也有,但是封装的你根本看不见了。而且它也不让你看见。 windows底层消息控制都是一个while循环结构体循环执行消息,然后执行响应的 处理函数处理要执行的人物或者事件 。
rtdb 2014-01-22
  • 打赏
  • 举报
回复
操作系统底层是中断模式,也就是你说的忽发执行。 然后操作系统看那个窗口有输入焦点,就生成个消息放到它的消息队列里 所以一个是OS处理,一个是应用处理,不一样的

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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