Peekmessage和Getmessage
来源:互联网 发布:手机电池电量校正软件 编辑:程序博客网 时间:2024/05/17 07:49
Peekmessage和Getmessage都是向系统的消息队列中取得消息,不过性质不同。 若第一次向消息队列中取不到消息,则程序的主线程会被OS(操作系统)挂起;等到OS重新调度到该线程时,而且消息队列仍然是空的时,两者的性质不同: 若使用Getmessage(),则程序的主线程会仍被OS挂起。 若是用Peekmessage(),则程序会取得OS控制权,运行一段时间。此函数多用于处理系统的空闲时间。 getmessage and peekmessage are both get the message from send_message queue. getmessage supports 同步机制。PEEKMESSAGE SUPPORTS 异步机制。 从原因上而言:GetMessage函数从消息队列中得到消息后并在队列中删除该消息 PeekMessage函数从消息队列中得到消息后并不在队列中删除该消息 从结果上而言:GetMessage等待一个消息(就像_getch),直到拿到消息才返回 PeekMessage不是这样(就像_kbhit),查询消息队列,有就取,即使没有也立即返回。 为了实现windows的多任务,要用getmessage,因为当getmessage发现自己的消息队列里没有消息时,就会把控制权交还给系统,这样就可以让避免资源的浪费。GetMessage函数每次调用是肯定会取回一个消息的,当消息队列为空的时候此进程会被挂起直到消息队列中有消息可取为止。 PeekMessage函数不管消息队列中是否有消息都会立即返回,返回是可以从返回的值里判断是否取到了消息,准确地说此函数是询问了一下消息队列,至于取回消息后是否从消息队列中删除此消息,由参数可以指定。 Windows3.1时很多应用程序的消息队列是由GetMessage函数构成的,而Win32以后大多数的应用程序的消息队列是由 PeekMessage函数构成的,vc和bcb好像都是这样的,基于Win32的抢先式多任务处理机制,采用PeekMessage函数构成的消息循环也不会对系统造成什么威胁。本文来自CSDN博客:http://blog.csdn.net/rbagglo/archive/2009/05/20/4202622.aspx
- 深入GetMessage和PeekMessage
- 深入GetMessage和PeekMessage
- 深入GetMessage和PeekMessage
- 深入GetMessage和PeekMessage
- PeekMessage和GetMessage函数
- 深入GetMessage和PeekMessage
- GetMessage和PeekMessage
- 深入GetMessage和PeekMessage
- 关于peekmessage和getmessage
- 深入GetMessage和PeekMessage
- 深入GetMessage和PeekMessage
- 深入GetMessage和PeekMessage
- 深入GetMessage和PeekMessage
- 深入GetMessage和PeekMessage
- 深入GetMessage和PeekMessage
- PeekMessage和GetMessage
- 深入GetMessage和PeekMessage
- GetMessage和PeekMessage
- csdn更改用户资料,变成插入,数据库主键出错
- 多普达系列 内存不足如何处理
- NASA WorldWind1.4.0源代码调试总结
- g33k 专用:使用 Mutt Email 客户端管理你的 Gmail
- 滚动控件(ScrollBar)
- Peekmessage和Getmessage
- rails命令大全
- 姚博文 servlet 3.0 小试牛刀
- Mogre学习系列(5)如何使用Ogre建立游戏程序
- Window 消息大全使用详解
- linux 简单命令
- 2010年6月23日俱乐部北京活动,“云计算实践”主题研讨活动
- 创建特定rails版本的工程
- Pro OGRE 3D Programming学习系列(1)设计总揽