当前位置:  开发笔记 > 编程语言 > 正文

什么可以导致WPF应用程序崩溃与AppHangB1问题事件名称?

如何解决《什么可以导致WPF应用程序崩溃与AppHangB1问题事件名称?》经验,为你挑选了1个好方法。

我目前正在处理的程序偶尔会挂起AppHangB1问题事件.我已将其追溯到一系列特定的动作,但它似乎是一种heisenbug,因为每当我单步执行代码时,它都不会表现出来.一旦程序挂起,我就无法暂停程序以查看它在Visual Studio中的挂起位置.这个应用程序中有很多事情发生(非托管互操作,多线程等),因此在我的特定应用程序中可能出现任何数量的错误.

我不是在寻找任何人为我解决我的问题,我只是想知道什么类型的东西可能导致这种类型的挂起?我在Google上发现了一些点击,但没有任何帮助..NET应用程序的任何调试技巧都可以帮助查明问题.



1> Michael..:

当UI线程几秒钟没有响应消息并且用户尝试终止消息时,将触发AppHangB1事件.几乎任何事情都可能导致挂起:代码中的繁忙循环,在UI线程上执行网络或磁盘I/O,在执行长时间运行任务的后台线程持有的锁上阻塞UI线程等.

有点担心Visual Studio在挂起时无法破解.您是附加到仅托管调试还是混合模式调试?您可以尝试使用Windbg(http://www.microsoft.com/whdc/devtools/debugging/default.mspx)非侵入性地附加到进程并尝试获取挂起线程的堆栈跟踪(您想要查看在使用!clrstack获取托管堆栈跟踪).Windbg的学习曲线相当陡峭,因此您可能只想收集可以在Visual Studio中调试的转储.

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有