您的位置:首页 > 其它

使用PostThreadMessage向发送线程消息失败的解决方法

2015-07-28 19:43 417 查看
问题描述:

PostThreadMessage 可用于线程间的信息交互。 在使用CreateThread 创建消息后,向已创建的线程发送消息时,线程中的GetMessage()无法接收到线程。 GetMessage是一个消息阻塞函数,当线程队列中没有消息时该函数始终处于阻塞的状态,直到有新的消息到来。 刚创建完线程后, 该线程的 消息队列还未创建,必须使用GetMessage等函数运行后消息队列才能创建。  因此这时使用  PostThreadMessage
发送消息线程是无法收到的。 

解决方法:

在创建线程的父线程中,当调用CreateThread 后,将将线程挂起n ms. 

WaitForSingleObject(childthreadid,n);  这样在福线程挂起n ms后,再调用PostThreadMessage发送线程消息,子线程就可以接收到消息了.

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  线程 PostThreadMessa