我自己新建了一个线程,并且自定义了一个用户消息和消息响应函数,主线程每次执行到相应事件的时候就以PostThreadMessage的形式通知子线程执行,当主线程源源不断的给子线程发送消息的时候,子线程来得及执行吗?如果消息是放在子线程的消息队列中,子线程自己会取消息来执行吗?我需不需要在子线程中写让它取消息的代码?
谢谢各位!
谢谢各位!
解决方案 »
- 如何在RichEdit实现下述效果
- _beginthread_和_CreateThread_区别与使用方法
- 求教GetKeyNameText获取的结果每次都为'E'(VC2005)
- 华为也有“人肉搜索”?我也被盯上了,你呢?说说你的看法~
- 帮忙找个错误!!!
- XP+VB6.0写的web控件,在XP,2003的ie上可以用,2000,2000server不可以用
- 请教一个根据当前时间做不同事情的程序
- ADO用文件dsn访问数据库,应该怎样打开数据库?
- 大家救救我呀,我的塞羊633的温度达到67度!!!
- 运行opencv相关代码时遇到如下错误请问怎么解决
- 求助:急需计时程序
- 如何判断一个图片为白页
PeekMessage(&msg,NULL,0,0,PM_REMOVE);
while(GetMessage(&msg,NULL,0,0))
{
switch(msg.message)
{
case WM_CLOSE:
return 0;
}
}
那就需要注册消息循环就成了
在头文件中加DECLARE_MESSAGE_MAP()
然后cpp中加
BEGIN_MESSAGE_MAP(CXXwin, CDialog)
//中间处理消息
END_MESSAGE_MAP()
如果发消息太快,肯定是来不及的。postthreadmessage在msdn上的描述就是可能会丢失消息。
下面的我想就不用回答了,还是换个思路吧
while(!m_pHandleThread->PostThreadMessage(WM_HANDLE,(WPARAM)&Info,NULL)
{
Sleep(10);
}就是一定要Post成功,这样应该行吧?