首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于进程间SendMessage的有关问题

2012-04-20 
关于进程间SendMessage的问题我在一个应用程序A中CreateProcess创建进程B,然后A使用SendMessage函数发送消

关于进程间SendMessage的问题
我在一个应用程序A中CreateProcess创建进程B,然后A使用SendMessage函数发送消息给B,通知他去某个地方取数据,然后由B进行数据的处理。
问题是:为什么有时候SendMessage成功,有时候不成功。

[解决办法]
我和楼上的不一样,重复没意思,我给你不一样的,那就是为什么有时SendMessage不成功,如下:

一般Windows书籍上都是这样说的:SendMessage是不放进消息队列的(PostMessage将消息放进消息队列后立即返回),而是直接传给窗口,并调用窗口的过程函数进行处理。在窗口过程函数对消息处理完毕,该函数才返回。
其实SendMessage传送的消息是进消息队列的,只不过每次进去都是放在队列的顶部,感觉就像是直接传给窗口一样。(我是从这里看到的:http://www.tinystrong.com/tag/sendmessage),所以啊,有时队列溢出还是会导致SendMesage不成功的啊,还有它可能延迟了其它消息的响应,因为它优先响应啊,而这些消息的响应可能和操作系统有关,导致出错,也有可能SendMessage不成功。
[解决办法]
SendMessage 在本进程内是不进消息对列的,跨进程是会进消息队列的

热点排行