MFC SendMessage 问题

state0517 2015-08-06 09:43:58
在 MFC 对话框应用程序中 当窗口正在处理一个循环时 用 SendMessage 向窗口发送一个消息时会怎样
窗口会卡死吗?
...全文
241 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2015-09-10
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
zgl7903 2015-08-07
  • 打赏
  • 举报
回复
把循环也做成线程, 或者在循环中获取和牌坊消息, 不要阻塞消息队列
快乐鹦鹉 2015-08-07
  • 打赏
  • 举报
回复
为什么用SendMessage?不用PostMessage?
ruilove_555 2015-08-07
  • 打赏
  • 举报
回复
引用 7 楼 ruilove_555 的回复:
不建议在子线程中使用SendMessage
SendMessage其实就是一个函数调用
ruilove_555 2015-08-07
  • 打赏
  • 举报
回复
不建议在子线程中使用SendMessage
state0517 2015-08-06
  • 打赏
  • 举报
回复
我确实是在子线程中 sendmessage 当子线程结束时调用 sendmessage 向窗口发送消息提示线程结束。 可是当调用 sendmessage 后窗口就卡死了。 但是如果我的循环次数比较少,当子线程尚未结束循环就结束了的话就不会出现上述情况。
yaozhiyong110 2015-08-06
  • 打赏
  • 举报
回复
按你说的 一直卡在循环 怎么又能到sendmessage的地方呢? 主界面卡死什么消息都处理不了 如果你是子线程sendmessage的话 那应该是会卡在那里知道主线程处理了这个消息才返回...
阿源是少年 2015-08-06
  • 打赏
  • 举报
回复
引用 2 楼 state0517 的回复:
我确实是在子线程中 sendmessage 当子线程结束时调用 sendmessage 向窗口发送消息提示线程结束。 可是当调用 sendmessage 后窗口就卡死了。 但是如果我的循环次数比较少,当子线程尚未结束循环就结束了的话就不会出现上述情况。
你这个卡死了怕不是sendmessage造成的,而是你的循环没退出,它就是假死状态,sendmessage直接调用的窗口过程,不会把消息发入消息队列,效果就是SendMessage可以成功
赵4老师 2015-08-06
  • 打赏
  • 举报
回复
Multiple Threads in the User Interface http://msdn.microsoft.com/zh-cn/library/ms810439.aspx

15,978

社区成员

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

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