PeekMessage和GetMessage的区别
来源:互联网 发布:安卓数据恢复 编辑:程序博客网 时间:2024/05/24 04:32
区别:
2. 如果GetMessage从消息队列中取不到消息,则线程就会被操作系统挂起,等到OS重新调度该线程时,两者的性质不同:使用GetMessage线程仍会被挂起,使用PeekMessage线程会得到CPU的控制权,运行一段时间。
3. GetMessage每次都会等待消息,直到取到消息才返回;而PeekMessage只是查询消息队列,没有消息就立即返回,从返回值判断是否取到了消息。
我们也可以说,PeekMessage是一个具有线程异步行为的函数,不管消息队列中是否有消息,函数都会立即返回。而GetMessage则是一个具有线程同步行为的函数,如果消息队列中没有消息的话,函数就会一直等待,直到消息队列中至少有一条消息时才返回。
如果消息队列中没有消息,PeekMessage总是能返回,这就相当于在执行一个循环,如果消息队列一直为空, 它就进入了一个死循环。GetMessage则不可能因为消息队列为空而进入死循环。
在Windows的内部,两个函数执行着相同的代码。
具体情况具体分析,无法说明到底哪一个更好一些,这要根据实际的应用情况而定。
阅读全文
0 0
- Peekmessage和Getmessage的区别
- GetMessage和 PeekMessage 的区别
- Peekmessage和Getmessage的区别
- Peekmessage和Getmessage的区别
- Peekmessage和Getmessage的区别
- Peekmessage和Getmessage的区别
- GetMessage和PeekMessage的区别
- GetMessage和PeekMessage的区别
- GetMessage和PeekMessage的区别
- GetMessage和PeekMessage的区别
- PeekMessage和GetMessage的区别
- GetMessage和PeekMessage的区别
- GetMessage和PeekMessage的区别
- GetMessage和PeekMessage的区别
- GetMessage和PeekMessage的区别
- GetMessage和PeekMessage的区别
- PeekMessage和GetMessage的区别
- Peekmessage和Getmessage的区别(转载)
- HtmlUnit 获取登录后的页面信息失败
- JAXB使用
- POJ1236 Network of Schools(SCC)
- [计蒜客16953] Hack Portals [2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 D]
- 检查Tomcat是否运行中,不在运行状态便启动
- PeekMessage和GetMessage的区别
- (java)一个简单的原生的RabbitMQ的例子。
- 关于jsp html标签的判断问题 if else 功能
- struts HTTP Status 404
- php-laravel4.0框架 简单快速入门
- ID3决策树(R实现)
- Java反射机制
- 关于java io 的 write 与 操作系统
- 教程:简单几步制作出酷炫网页版简历