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

yu4233 2005-05-11 08:27:27
我编写了一个多线程程序,各个线程之间要频繁的进行相互的通信,我用PostMessage发送消息,但消息老是丢,有什么方法能向一个线程发送消息,并保证消息不丢失吗?? SendMessage成吗??
...全文
2218 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)
内容概要:本资源聚焦于配电网在发生故障后的两阶段鲁棒恢复研究,旨在提升电力系统在不确定性条件下的恢复能力与运行可靠性。研究采用两阶段优化方法,第一阶段进行预恢复决策,如网络重构、分布式电源出力调整等,以最小化预期损失;第二阶段则针对实际发生的故障场景实施校正控制,利用鲁棒优化理论应对负荷波动、新能源出力不确定性等因素,确保恢复方案的可行性与强健性。资源提供了完整的Matlab代码实现,复现了相关顶刊研究成果,便于使用者深入理解模型构建、算法求解及仿真分析全过程。; 适合人群:具备电力系统分析、优化理论基础及Matlab编程能力的研究生、科研人员及电力行业工程师。; 使用场景及目标:① 学习并掌握配电网故障恢复的先进优化方法,特别是两阶段鲁棒优化模型的构建与应用;② 复现和验证顶刊论文中的算法,为自身科研工作提供技术参考和代码基础;③ 将所学方法拓展应用于微电网、主动配电网等新型电力系统的可靠性评估与优化调度研究。; 阅读建议:学习者应结合提供的Matlab代码,仔细研读模型的数学公式与求解逻辑,重点关注不确定性建模、两阶段决策变量的设定以及鲁棒对等转换技巧。建议在掌握基础案例后,尝试修改参数或引入新的约束条件进行扩展研究,以深化理解并提升创新能力。

15,466

社区成员

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

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