0

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

4

3 回答 3

2

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

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

我过去遇到的一些问题:

  • 从 UI 线程立即执行的操作过多
    • 使用BackgroundWorker
  • 不正确的锁定模型导致 UI 线程无法收集它想要的信息
    • 确保 ViewModel 中的数据在没有锁定属性的情况下不能被后台线程更改。

阅读有关 WPF 和多线程的一些有趣链接:

希望这对您有所帮助

于 2012-06-19T09:35:00.183 回答
1

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

于 2012-06-19T09:42:20.497 回答
0

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

于 2012-06-19T09:33:00.770 回答