时间消息驱动机制
2015-07-22 09:16
218 查看
很通俗的说法
事件驱动机制就是:
让驴拉磨,它不拉,你用鞭抽一下,它就开始拉了。然后又停了,你再抽一下,它又继续拉了
这叫用“鞭”驱动“驴”拉磨
在程序里,程序停止在那不动,你点击一个按钮,它就有反应了,过一会,又没反应了,你再点一下,它又继续运行。
这叫用“事件”驱动“程序”运行
从程序设计的观点看,某条消息可被视为某个事件的发生,比如点击鼠标。事件即可以由用户引发,也可以由应用程序产生,当然Windows本身也能发出消息。Windows应用程序的消息来源有4种:输入消息,控制消息,系统消息,用户消息。
Windows是一个多任务操作系统,所以没有哪一个程序能够独占系统的资源,资源都是由Windows统一管理的。那么某个程序是如何获得用户的信息呢?事实上,Windows在时刻监视着用户的每个举动,并分析用户的动作与哪一个程序相关,然后将动作以消息的形式发送给当前的应用程序。相反,应用程序也在时时等着消息的到来,一旦发现它的消息队列中有未处理的信息,就获取并分析该消息,并根据消息所包含的内容采取适当的动作来响应。这里我们引出另一个概念“消息驱动”。比如当你单击file菜单的时候,首先这个动作被windows所捕获,而不是应用程序。经分析windows知道该动作该由哪个应用程序处理,然后windows就发送WM_COMMAND消息给该应用程序,它告诉应用程序,你单击了file菜单。应用程序得知这一消息后,便采取相应的动作来响应它,进行“消息处理”。Windows为每个线程维护了相应的消息队列,应用程序的任务就是不停地从特定的消息队列中获取消息、分析消息并处理消息,直到消息(WM_QUIT)为止。这个过程的程序结构称为“消息循环”。
事件驱动机制就是:
让驴拉磨,它不拉,你用鞭抽一下,它就开始拉了。然后又停了,你再抽一下,它又继续拉了
这叫用“鞭”驱动“驴”拉磨
在程序里,程序停止在那不动,你点击一个按钮,它就有反应了,过一会,又没反应了,你再点一下,它又继续运行。
这叫用“事件”驱动“程序”运行
从程序设计的观点看,某条消息可被视为某个事件的发生,比如点击鼠标。事件即可以由用户引发,也可以由应用程序产生,当然Windows本身也能发出消息。Windows应用程序的消息来源有4种:输入消息,控制消息,系统消息,用户消息。
Windows是一个多任务操作系统,所以没有哪一个程序能够独占系统的资源,资源都是由Windows统一管理的。那么某个程序是如何获得用户的信息呢?事实上,Windows在时刻监视着用户的每个举动,并分析用户的动作与哪一个程序相关,然后将动作以消息的形式发送给当前的应用程序。相反,应用程序也在时时等着消息的到来,一旦发现它的消息队列中有未处理的信息,就获取并分析该消息,并根据消息所包含的内容采取适当的动作来响应。这里我们引出另一个概念“消息驱动”。比如当你单击file菜单的时候,首先这个动作被windows所捕获,而不是应用程序。经分析windows知道该动作该由哪个应用程序处理,然后windows就发送WM_COMMAND消息给该应用程序,它告诉应用程序,你单击了file菜单。应用程序得知这一消息后,便采取相应的动作来响应它,进行“消息处理”。Windows为每个线程维护了相应的消息队列,应用程序的任务就是不停地从特定的消息队列中获取消息、分析消息并处理消息,直到消息(WM_QUIT)为止。这个过程的程序结构称为“消息循环”。
相关文章推荐
- 常见网页错误代码大全
- mybatisBUG
- 百度静态地图
- POJ 3295:Tautology
- LRU算法的最小堆实现
- Nginx 配置php-fpm(或者Fast_cgi等等)——File Not find!
- 会话EJB系列(四)SessionBean事务管理
- 图表中如何实现动态变更分类轴与系列值
- .NET系统开发过程中积累的扩展方法
- 再探LIS
- Intellj IDEA14.0.2启动异常之3分钟修复
- Java正则表达式 Matcher类成员函数 matches find lookingAt group start end 用法
- 黑马66期android学习笔记14-电话拨号器定义布局&获取组件对象
- 第一个OC程序
- 【HTML】html5新属性-datalist
- java学习-------异常
- Android基础入门教程——3.3 Handler消息传递机制浅析
- 对重装系统彻底说再见――电脑C盘备份
- Android surfaceview详解
- 由餐厅管理引发的思考