子窗口卡死 父窗口复活

leilei_zong 2014-12-02 03:00:22
发个难题,大家讨论一下,看怎么能破?
1.父窗口在主进程的某一线程中
2.子窗口在子进程的某一线程中
子窗口所在线程接收命令后,进入死循环,父窗口也跟着死了
如何处理子窗口卡死而不让主窗口也跟着卡死?或者怎么处理子窗口卡死让主窗口能够复活?
...全文
1363 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
TGame 2017-06-20
  • 打赏
  • 举报
回复
引用 3 楼 leilei_zong 的回复:
是要解除父子关系,还要解除线程的输入队列,我试过的,关系可以正常解除,可是主窗口的仍然会卡死,比如主窗口的最大化按钮就会无响应,怎么能彻底解除关系呢?
我也是。子进程崩溃不影响父进程。子进程卡死父进程也卡死
赵4老师 2016-02-26
  • 打赏
  • 举报
回复
Multiple Threads in the User Interface http://msdn.microsoft.com/zh-cn/library/ms810439.aspx
S470152883 2016-02-26
  • 打赏
  • 举报
回复
Mark 遇到相同的问题
worldy 2015-05-18
  • 打赏
  • 举报
回复
建议: 不要在主窗口的OnCreate或者其它地方创建子窗口 子窗口应该有线程函数创建
worldy 2015-05-18
  • 打赏
  • 举报
回复
1.父窗口在主进程的某一线程中 2.子窗口在子进程的某一线程中//是由子窗口线程创建的?按照楼主的描述肯定不是由子线程创建的 子窗口所在线程接收命令后,进入死循环,父窗口也跟着死了//如果子窗口是子线程创建的,主线程是不会卡死的 如何处理子窗口卡死而不让主窗口也跟着卡死?或者怎么处理子窗口卡死让主窗口能够复活? 更多 0 分
yigezihao 2015-05-18
  • 打赏
  • 举报
回复
我也在研究这个问题,目前IE跟QQ浏览器都做到了,不知道过了这么久,楼主是否已经解决?
SiGoYi 2014-12-04
  • 打赏
  • 举报
回复
如果主窗口和子窗口没有逻辑依赖关系,那么由于他们在不同的线程,并且他们都有自己的消息循环,按道理说应该不会子窗口卡死能影响主窗口的情况。除非是二者有逻辑依赖关系,如:主窗口调用子窗口函数,而在子窗口函数中死循环了,导致主窗口也根着卡了。其他情况不可能。即使是依赖子窗口消息或事件也不会导致主窗口卡死。
笨笨仔 2014-12-04
  • 打赏
  • 举报
回复
先解决死循环,因为有的死循环会抢走所有的机时变成独占,从而造成系统死机。正常的死循环是可释放资源的,此时不在同一线程的主程序应该不会发生死机,否则说明程序存在严重错误。
leilei_zong 2014-12-04
  • 打赏
  • 举报
回复
父子窗口并没有互相操作,理论上解开父子关系后就应该不会卡死了,可事实证明的确还是有问题,而且我用MFC写了一个简单的Demo验证了此问题,这是一个技术难题,目前IE浏览器就做到了,IE浏览器的主界面和页面区窗口就在不同的线程中,当页面卡死的时候,主界面仍然复活了,IE就是彻底解开了窗口父子关系,上面有人说应该解决子窗口卡死的问题,这是不需要解决的,我抛出这个问题就是想解决子窗口卡死的时候让主窗口复活,目前仍然没有人能给我正确的答案
leilei_zong 2014-12-04
  • 打赏
  • 举报
回复
父子窗口并没有互相操作,理论上解开父子关系后就应该不会卡死了,可事实证明的确还是有问题,而且我用MFC写了一个简单的Demo验证了此问题,这是一个技术难题,目前IE浏览器就做到了,IE浏览器的主界面和页面区窗口就在不同的线程中,当页面卡死的时候,主界面仍然复活了,IE就是彻底解开了窗口父子关系,上面有人说应该解决子窗口卡死的问题,这是不需要解决的,我抛出这个问题就是想解决子窗口卡死的时候让主窗口复活,目前仍然没有人能给我正确的答案
boygo1982 2014-12-04
  • 打赏
  • 举报
回复
我觉得应该把问题的重点放在解决子窗口卡死上吧。这种一环套一环的,你不解决子窗口,而去解决父窗口的问题。本来程序错误就是会传递的。
likfeng 2014-12-04
  • 打赏
  • 举报
回复
父子之间是不是有互操作?
Daisy__Ben 2014-12-02
  • 打赏
  • 举报
回复
这个问题应该归结到LZ是如何让子窗口卡死了的这个问题上吧
足球中国 2014-12-02
  • 打赏
  • 举报
回复
没这样玩过。 自己感觉不同的进程消息循环不一样,应该是不会卡死的。
leilei_zong 2014-12-02
  • 打赏
  • 举报
回复
zhao4zhong1能说下解决办法吗?
赵4老师 2014-12-02
  • 打赏
  • 举报
回复
查MSDN是Windows程序员必须掌握的技能之一。 http://msdn.microsoft.com/zh-cn/library/ms810439.aspx
leilei_zong 2014-12-02
  • 打赏
  • 举报
回复
oyljerry 你好,能和你探讨一下吗?
leilei_zong 2014-12-02
  • 打赏
  • 举报
回复
是要解除父子关系,还要解除线程的输入队列,我试过的,关系可以正常解除,可是主窗口的仍然会卡死,比如主窗口的最大化按钮就会无响应,怎么能彻底解除关系呢?
oyljerry 2014-12-02
  • 打赏
  • 举报
回复
不同进程应该不会卡死,除非你父窗口在等待子窗口什么消息,因为子窗口卡死,所以父窗口一直在等待
hubo86915531 2014-12-02
  • 打赏
  • 举报
回复
解除父子关系,你走你的阳关道,我过我的独木桥 其实我是瞎掰的,坐等高手回复,学习

15,471

社区成员

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

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