识别UI挂起问题

时间:2012-06-19 09:20:42

标签: c# asp.net wpf visual-studio-2010

是否有任何工具可以让您查看代码的当前执行情况?我需要这个,因为我的WPF应用程序的UI挂起时没有任何通知/异常。我无法调试此问题。系统保持空闲状态,每次我必须明确地终止进程。有什么建议。仅供参考..正在使用许多第三方工具。

3 个答案:

答案 0 :(得分:2)

我不确定你已经测试了什么,也许我的回答是无效的但是:

您是否尝试在Visual Studio中使用暂停功能。它会暂停应用程序的所有线程,您可以在每个线程中看到它暂停的位置。您还可以单步执行每个线程以查找可能的问题。

我过去遇到的一些问题:

  • 从UI线程立即执行的操作过多
    • 使用BackgroundWorker
    • 向后台线程发送大量工作
  • 不正确的锁定模型,因此UI线程无法收集所需的信息
    • 确保后台线程无法在没有锁定属性的情况下更改ViewModel中的数据。

阅读有关WPF和MultiThreading的一些有趣链接:

希望这对你有所帮助

答案 1 :(得分:1)

您可以使用windbg来全面调查流程的所有方面。虽然涉及学习曲线,但在我看来,熟悉这个工具对于开发人员来说至关重要。要开始,请通过任务管理器获取正在运行的进程的完整内存转储。下载&安装debugging tools for windows。完成这项工作后,请查看一些教程&如果你发表评论,我会尽力帮助

答案 2 :(得分:0)

如果您正在使用主线程执行内存/ CPU使用任务,即使没有任何异常,UI也将变为空闲。要解决此问题,请使用BackgroudWorker / Separate线程执行耗时的操作。因此UI不会冻结