读书人

用postthreadmessage发送的线程消息为

发布时间: 2012-02-17 17:50:42 作者: rapoo

用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);之前就发了
你把代码弄上来
[解决办法]
不用这么麻烦吧,在子线程中设置一个事件,下载完,通知主线程,主线程计数剩余数量,语音播报.

读书人网 >.NET

热点推荐