MFC多线程消息通信

houxinglong 2016-08-30 03:23:48
    m_pThread = AfxBeginThread(ReadFileThread, this);

while(TRUE)
{
DWORD dResult;
MSG msg;

dResult = MsgWaitForMultipleObjects(1, &(m_pThread->m_hThread), FALSE, INFINITE, QS_ALLINPUT);

if(dResult == WAIT_OBJECT_0) //线程退出
break;
else if(dResult == WAIT_OBJECT_0 + 1) //有消息达到
{
while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
}

线程创建没问题,但是while这一段用在文件加载这个线程里行不通,说是换另一种消息发送,我是新手,有没有懂的,直接贴个代码呗,谢谢!!
...全文
716 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lx624909677 2016-08-31
  • 打赏
  • 举报
回复
那就看if(dResult == WAIT_OBJECT_0) 这行,dResult 的值肯定是一直都是不能跳出循环的值
houxinglong 2016-08-31
  • 打赏
  • 举报
回复
引用 4 楼 lx624909677 的回复:
什么叫行不通?编译不过还是运气起来没有效果还是运行起来报异常?
设置断点,运行起来一直在while里出不来,无线循环
lx624909677 2016-08-31
  • 打赏
  • 举报
回复
什么叫行不通?编译不过还是运气起来没有效果还是运行起来报异常?
houxinglong 2016-08-31
  • 打赏
  • 举报
回复
引用 6 楼 lx624909677 的回复:
那就看if(dResult == WAIT_OBJECT_0) 这行,dResult 的值肯定是一直都是不能跳出循环的值
是的,但是别人程序同样的确可以,不知道怎么修改
笨笨仔 2016-08-30
  • 打赏
  • 举报
回复
还是先了解一下“自定义消息”。 搞清楚你的消息来源,创建消息响应
houxinglong 2016-08-30
  • 打赏
  • 举报
回复
引用 1 楼 swwllx 的回复:
没有明白你要表达的意思 是不是要通过自定义消息发送 自己百度下就好了
不是,不是,这个只有在加载数据文件线程出错,其他地方都可以,可能是换个MsgWaitForMultipleObjects函数,但是我不知道呀。
三岁、就很帅 2016-08-30
  • 打赏
  • 举报
回复
没有明白你要表达的意思 是不是要通过自定义消息发送 自己百度下就好了

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧