PostMessage发消息老是丢失怎么办??急呀

yu4233 2005-05-11 08:27:27
我编写了一个多线程程序,各个线程之间要频繁的进行相互的通信,我用PostMessage发送消息,但消息老是丢,有什么方法能向一个线程发送消息,并保证消息不丢失吗?? SendMessage成吗??
...全文
2228 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingshi310 2005-05-12
  • 打赏
  • 举报
回复
“信号等原子操作”大哥你好牛啊
aoosang 2005-05-11
  • 打赏
  • 举报
回复
Windows系统是由消息机制驱动的,每个线程如果建立了一个窗口,则由系统分配一个消息队列用于窗口消息的处理。PostMessage就是将你的消息放入窗口的消息队列中即立即返回,不必等待窗口线程处理,另外,消息也可以不经过消息队列而利用SendMessage函数直接发送给窗口,窗口过程将处理这个消息,但只有当消息被处理之后,SendMessage才能返回到调用程序。
MapleInHG 2005-05-11
  • 打赏
  • 举报
回复
PostThreadMessage
jerry 2005-05-11
  • 打赏
  • 举报
回复
PostMessage 消息不会丢的.
bigelm 2005-05-11
  • 打赏
  • 举报
回复 1
楼上的说得对,管理多个线程需要一个领导者,建立专有的数据区,可以使内存文件也可以是个全局的链表。定义好了数据格式,然后发送者把消息写进来,接受者查询消息,找到后取出并将其从这个“专有数据区”中删除。
yu4233 2005-05-11
  • 打赏
  • 举报
回复
用sendMessage发消息是肯定能发过去吗?? 消息肯定不会丢失是吗??
rabo 2005-05-11
  • 打赏
  • 举报
回复
他是讲PV操作
Jimmy_Xia 2005-05-11
  • 打赏
  • 举报
回复
不用message,用内存文件来传递数据试试看
good luck!
yu4233 2005-05-11
  • 打赏
  • 举报
回复
“信号等原子操作”是什么意思,我不明白,能否说的详细一点
Anikan 2005-05-11
  • 打赏
  • 举报
回复
那当然了干吗不用信号等原子操作呢?
feelmoon 2005-05-11
  • 打赏
  • 举报
回复
多PostMessage几次或者要求接收线程也PostMessage过来告诉你它已经知道了,如果没收到确认消息,再重发就是了
Jarrylogin 2005-05-11
  • 打赏
  • 举报
回复
SendMessage要等待消息确认后再执行下一步
无聊客 2005-05-11
  • 打赏
  • 举报
回复
在线程里用SendMessage产生死锁的可能性会提高,
tanhan 2005-05-11
  • 打赏
  • 举报
回复
用SendMessage 缺点是有时候阻塞
aoyi56 2005-05-11
  • 打赏
  • 举报
回复
消息好像不会丢吧,对于需要传送给窗口进程的消息要使用PostMessage进行发送,对于给线程的消息要使用
PostThreadMessage来使用
yu4233 2005-05-11
  • 打赏
  • 举报
回复
flysec(flysec) 说得对,我是在线程开得比较多的时候(大概20个)才出现postMessage消息丢失的现象,开得线程数少就没问题。

“线程太多,调度来不及系统就自动抛消息”是怎么一会事呀???
gzl 2005-05-11
  • 打赏
  • 举报
回复
你需要接收到消息的线程级别比调用postmessage函数的线程级别高,没有时间来执行postmessage消息,可以使用sendmessage函数,使用不进队列消息。我以前也有过你这种情况,后来发现是自己没设计好线程模型。我建议你好好规划一下你的模式,是不是因为思想有错误。
flysec 2005-05-11
  • 打赏
  • 举报
回复
我觉得POST不会丢消息的啊,很稳定
可能是不是线程太多,调度来不及就自动抛了消息
如果是这样,就建议做全局连表来放消息,不过你得自己维护连表,用互斥变量控制好。容易出错
llm06 2005-05-11
  • 打赏
  • 举报
回复
怎么可能,postmessage消息总是丢。微软还没有这么差。

老兄,肯定是你自己使用不当。
wy99sinacom 2005-05-11
  • 打赏
  • 举报
回复
最好自己处理消息队列
加载更多回复(6)

15,465

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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