社区
C++ 语言
帖子详情
什么是消息阀?
Microsoft777
2008-04-30 04:56:34
刚才在百度和 google 搜索了一下
没有找到相关的资料
我想解决在进程执行过程中狂占CPU的问题
哪位哥哥看看能解决不
小弟这里先谢谢了
...全文
163
12
打赏
收藏
什么是消息阀?
刚才在百度和 google 搜索了一下 没有找到相关的资料 我想解决在进程执行过程中狂占CPU的问题 哪位哥哥看看能解决不 小弟这里先谢谢了
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Microsoft777
2008-05-05
打赏
举报
回复
消息泵和消息阀是同一个概念
BOOL GetMessageMap()
{
MSG msg;
while(::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
::DispatchMessage (&msg);
return TRUE;
}
把消息循环改成这样
herman~~
2008-05-03
打赏
举报
回复
sleep();
abupie
2008-05-02
打赏
举报
回复
[Quote=引用 2 楼 iGoo 的回复:]
不要用这样的方式获取消息
while( 1 )
{
getmessage();
domessage();
}
这是一个busy loop
要用这样的方式
收到消息的线程
ThreadRecvMessage()
{
// 1:将消息放入队列,注意同步保护
// 2:发送事件
SetEvent(hEvent);
}
while( WaitForSingleObject( hEvent, INFINITE ) == WAIT_OBJECT_0 )
{
getmessage();
domessage();
}
[/Quote]很清楚了。
Microsoft777
2008-05-02
打赏
举报
回复
自己顶一下!
Microsoft777
2008-05-02
打赏
举报
回复
while( 1 )
{
getmessage();
domessage();
}
在哪里啊?
solo_coder
2008-05-02
打赏
举报
回复
帮顶一下,
我曾经这样做过 :
while(1)
{
sleep(200);
getmessage();
domessage();
}
让消息处理线程(该程序是多线程的程序,有消息处理分发线程,界面处理线程,工作线程)sleep下,
效果也还可以。
如果没有记错的话,
我记得我以前维护过的一个商业上要求可靠性,性能很高的程序中,
也只是让消息线程sleep等待一下(具体实现是用select函数实现让线程放弃对cpu资源的占用),而没有用到event这样的通告机制,
该程序实际工作也很稳定。
Microsoft777
2008-04-30
打赏
举报
回复
[Quote=引用 2 楼 iGoo 的回复:]
不要用这样的方式获取消息
while( 1 )
{
getmessage();
domessage();
}
这是一个busy loop
要用这样的方式
收到消息的线程
ThreadRecvMessage()
{
// 1:将消息放入队列,注意同步保护
// 2:发送事件
SetEvent(hEvent);
}
while( WaitForSingleObject( hEvent, INFINITE ) == WAIT_OBJECT_0 )
{
getmessage();
domessage();
}
[/Quote]
还是不太懂
while( 1 )
{
getmessage();
domessage();
}
消息循环在 MFC 下应该是被封装了。
ThreadRecvMessage()
{
// 1:将消息放入队列,注意同步保护
// 2:发送事件
SetEvent(hEvent);
}
while( WaitForSingleObject( hEvent, INFINITE ) == WAIT_OBJECT_0 )
{
getmessage();
domessage();
}
这些应该加载哪里呢
iGoo
2008-04-30
打赏
举报
回复
是windowsAPI,可以用的
其实这就是MS倡导的,消息驱动
没事别没头没脑的Get
Microsoft777
2008-04-30
打赏
举报
回复
我是在 MFC 下
这些也适用吗
OpenHero
2008-04-30
打赏
举报
回复
WaitForSingleObject还有其他几个返回结果~最好用一个switch 处理
iGoo
2008-04-30
打赏
举报
回复
不要用这样的方式获取消息
while( 1 )
{
getmessage();
domessage();
}
这是一个busy loop
要用这样的方式
收到消息的线程
ThreadRecvMessage()
{
// 1:将消息放入队列,注意同步保护
// 2:发送事件
SetEvent(hEvent);
}
while( WaitForSingleObject( hEvent, INFINITE ) == WAIT_OBJECT_0 )
{
getmessage();
domessage();
}
OpenHero
2008-04-30
打赏
举报
回复
不知道 mark一下~
面试官杠上
消息
队列?别慌,现在就来找找重复消费、
消息
堆积、
消息
丢失、顺序
消息
的解决方案
面试官杠上
消息
队列?重复消费、
消息
堆积、
消息
丢失、顺序
消息
… 什么,这么多问题啊!别慌,现在就来找找解决方案。
【物联网平台Rabbitmq实际应用】rabbitMQ的使用场景?
消息
队列产生严重
消息
堆积怎么处理?
文章目录rabbitMQ的使用场景
消息
队列产生严重
消息
堆积怎么处理?如何应对严重
消息
堆积呢?...3.流量削峰—秒杀系统通过
消息
队列设置请求最大值,超过
阀
值的抛弃或者转到错误界面 4.rabbitmq采用信道通信。不采用tcp直
关于KN95口罩:可以使用多久?要不要呼吸
阀
?怎么佩戴?
到底需不需要呼吸
阀
? N95分为有无呼气
阀
两种。患有慢性呼吸疾病、心脏病或其他伴有呼吸困难症状的疾病的人,使用N95呼吸器可能会使佩戴者呼吸更加困难,因此使用配有呼气
阀
的N95口罩,能让他们呼气轻松一些,并有助...
什么是缓存雪崩?服务器雪崩的场景与解决方案
什么是应用服务雪崩 雪崩问题 分布式系统都存在这样一个问题,由于网络的不稳定性,决定了任何一个服务的可用性都不是 100% 的。当网络不稳定的时候,作为服务的提供者,自身可能会被拖死,导致服务调用者阻塞,最终...
面试官:Kafka 会不会丢
消息
?怎么处理的?一篇文章带你学习
在正常情况下,客户端的异步调用可以通过callback来处理
消息
发送失败或者超时的情况,但是,一旦producer被非法的停止了,那么buffer中的数据将丢失,broker将无法收到该部分数据。Broker丢失
消息
是由于Kafka本身的...
C++ 语言
65,184
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章