社区
进程/线程/DLL
帖子详情
PostMessage发消息老是丢失怎么办??急呀
yu4233
2005-05-11 08:27:27
我编写了一个多线程程序,各个线程之间要频繁的进行相互的通信,我用PostMessage发送消息,但消息老是丢,有什么方法能向一个线程发送消息,并保证消息不丢失吗?? SendMessage成吗??
...全文
2228
26
打赏
收藏
PostMessage发消息老是丢失怎么办??急呀
我编写了一个多线程程序,各个线程之间要频繁的进行相互的通信,我用PostMessage发送消息,但消息老是丢,有什么方法能向一个线程发送消息,并保证消息不丢失吗?? SendMessage成吗??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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)
STM32学习笔记(四)——STM32的USART和串口通信
STM32的USART外设使用方法简介
【STM32-学习笔记-7-】USART串口通信
本文介绍了STM32的USART串口通信函数,及其配置
STM32CubeMX学习笔记六 《USART 串口通信》
前言 废话 不知不觉又到了难得的周末,本想慵懒的享受一下这难得的清闲,可心中总有点牵挂。碌碌无为是一天,忙忙碌碌是一天,每个人的生活方式还在于自己内心的选择,而我选择了去做点自己感兴趣的小事,也算告慰自己的内心。 闲话就不多说了,接下来我们来一起看看如何通过STM32CubeMX来配置串口通信,串口通信在平常的项目中用到的挺多,但项目中并不是只用到USART来完成数据传输,通常会和RS485、232、Modbus等结合使用,这不仅可以保证数据的稳定及正确性,还可以有效的增加传输距离。这个我们会在后面慢慢讲怎
stm32学习笔记:USART串口通信
stm32学习笔记:USART串口通信
STM32学习笔记7-串口通信-USART外设
通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的 外部设备之间进行全双工数据交换。它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据 组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。使用多缓冲器配置的DMA方式,可以实现高速数据通信。.数据位:数据帧的有效载荷,数值为0/1,低位先行。.起始位,开始传输数据的位,默认为低电平。.校验位:用于数据校验,分为奇偶校验。停止位:数据帧的间隔,默认为高电平。
进程/线程/DLL
15,465
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章