实时监控时的问题!

cnwolf 2005-04-05 09:56:59
现在我用多线程监控网络上的某个软件.

在收到网络的数据报后,我给显示的窗体用PostMessage()发送消息

可是在测试的时候,如果发送的数据报过多过快时,主界面会停止响应界面消息

我想可能是程序的消息队列中填充满了我发送的监控数据消息,导致了对界面

消息响应的延迟

请问各位大哥有没有后什么好的办法解决?

能不能单独创建一个消息队列?

如果创建?

谢谢!
...全文
221 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnwolf 2005-04-08
  • 打赏
  • 举报
回复
自己的问题,顶起来,大家帮帮忙!
cnwolf 2005-04-08
  • 打赏
  • 举报
回复
to ;Practise_Think(时代“过客”)

请问如何增大缓冲消息的大小?
wg88888 2005-04-08
  • 打赏
  • 举报
回复
关注,好像没有太好的解决方法。
Practise_Think 2005-04-07
  • 打赏
  • 举报
回复
在这里sendmessage也许会比postmessage好,或者你在WINMAIN函数中,消息队列创建的时候增大其缓冲消息大小!!
cnwolf 2005-04-07
  • 打赏
  • 举报
回复
我就是把动态分配数据的地址作为消息参数发给窗体,窗体读取数据插入到listctrl中

还有测试时,发现postmessage会丢失一些消息

我也尝试用afxbeginthread创建了一个具有消息循环的线程,可以通过postthreadmessage

给这个线程发送消息,可是我的窗体是在别的线程里创建的,不能自动接收我新建线程的消息

如果我用sendmessage或postmessage转发的话,我想不能解决我的问题!
oyljerry 2005-04-06
  • 打赏
  • 举报
回复
要么消息只发送一个标志,让界面去读写内存等来取得数据
linuxpgy 2005-04-06
  • 打赏
  • 举报
回复
主窗体正的忙不过来吗?你的多个work thread之间没有互锁吗?
如果正的是数据太多的话,再开消息循环也没有用,只有尽量在work thread中
处理数据,少发些消息。试试SendMessage或WM_COPYDATA消息。
cnwolf 2005-04-06
  • 打赏
  • 举报
回复
我开的是多个work thread 在收到数据报后,把数据放到动态分配的空间中,然后调用postmessage()把空间地址作为参数发送到我显示数据的窗体上,在窗体上动态刷新数据
DentistryDoctor 2005-04-05
  • 打赏
  • 举报
回复
两个线程共享同一缓冲区?
__A__ 2005-04-05
  • 打赏
  • 举报
回复
学习...
ayanamiwww 2005-04-05
  • 打赏
  • 举报
回复
自己创建消息队列,没做过,但是你可以自己处理socket接收到的数据,不用立即刷新界面,有限度的刷新就好了。
JaeBear 2005-04-05
  • 打赏
  • 举报
回复
同意楼主观点,创建一个消息队列,当队列满时拒绝再接受新的消息
signoft 2005-04-05
  • 打赏
  • 举报
回复
关注,Up

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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