hur.cn - 华软网

 热门搜索

频繁使用SendMessage()造成死机或程序退出

  作者:未知    来源:网络    更新时间:2010/12/8

频繁运用SendMessage()造成死机或程序退出


我用VC++2005编程。我的程序包括一个主线程和另一个创建的线程,在创建的线程里面向主线程用SendMessage()发送一个消息,是通过一个按钮实现的这个,尝试的时候我就手按住回车键,相当于持续地按下按钮,让程序不停的做这个操作,就是向主线程发送消息,可是一会就死机,

我的另外一个类似的程序,是多线程上的一个例子,也是这样的尝试方法,结果程序自行退出。

这个问题应该和windows的消息行列有关系?怎么解决这个问题?

谢谢!
---华软 网友回答---
SendMessage()发送的消息要求主线程立即措置惩罚,并终止了主线程对其余消息的措置惩罚,可能一个还没措置惩罚完,你又来一个,造成死机了吧。

SendMessage()发送的消息不进入消息行列。
---华软网友回复---
SendMessage必需要等这个消息措置惩罚完之后才能前往,你按的次数太多,对方来不及反应只可死机
---华软网友回复---
我了个去,你持续按,你机子吃得消吗?程序自行退出,我看是溃散退出了吧...
---华软网友回复---
如果有用户就是想这么按着玩怎么办,那总不能让程序自行退出吧!

列位看能否在两次SendMessage()之间加上时间间隔,像用个Sleep(20)什么的延迟一下,等程序措置惩罚完再发送,

另有其余的什么更好的方法来措置惩罚这个问题吗?

谢谢
---华软网友回复---
你改用PostMessage呢?
---华软网友回复---
这个函数是阻塞的   不措置惩罚完不前往    按的多了  还没来的急措置惩罚 没前往  又按了 就崩了
---华软网友回复---
引用 4 楼 xinyancode 的回复:
如果有用户就是想这么按着玩怎么办,那总不能让程序自行退出吧!

列位看能否在两次SendMessage()之间加上时间间隔,像用个Sleep(20)什么的延迟一下,等程序措置惩罚完再发送,

另有其余的什么更好的方法来措置惩罚这个问题吗?

谢谢


postMessage
---华软网友回复---
你的消息里都干什么了
---华软网友回复---
引用楼主 xinyancode 的回复:
频繁运用SendMessage()造成死机或程序退出


我用VC++2005编程。我的程序包括一个主线程和另一个创建的线程,在创建的线程里面向主线程用SendMessage()发送一个消息,是通过一个按钮实现的这个,尝试的时候我就手按住回车键,相当于持续地按下按钮,让程序不停的做这个操作,就是向主线程发送消息,可是一会就死机,

我的另外一个类似的程序,是多线程上的一个例子,也是这样的……

换postmessage就好了      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。