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

用postthreadmessage发送的线程消息为什么在线程里不一定收的到?该怎么处理

2012-02-17 
用postthreadmessage发送的线程消息为什么在线程里不一定收的到?在主线程里 PostThreadMessage(myThread.T

用postthreadmessage发送的线程消息为什么在线程里不一定收的到?
在主线程里 PostThreadMessage(myThread.Threadid,wmmsg,0,integer('测试内容'));

线程里循环 PeekMessage(myMsg,0,0,0,PM_REMOVE);

有时收不到,有时收到的是错误信息(string(myMsg.lParam) 不等于 '测试内容' ),这是为什么?

[解决办法]
那个线程第一次调用PeekMessage之类的api之前是没有消息队列的,此时发消息没用

你PeekMessage(myMsg,0,0,0,PM_REMOVE);要检查myMsg.message是否等于wmmsg
[解决办法]
是不是PeekMessage(myMsg,0,0,0,PM_NOREMOVE);之前就发了
你把代码弄上来
[解决办法]
不用这么麻烦吧,在子线程中设置一个事件,下载完,通知主线程,主线程计数剩余数量,语音播报.

热点排行