如何调试WPF NET应用程序以检测锁等

问题描述 投票:0回答:1

我在NET 3.5中有一个WPF MVVM桌面应用程序。该应用程序的主窗口中有一个组合框。此comobobx绑定到视图模型属性。当第一次启动应用程序时,将填充此组合框。当从组合框中选择一个项目时,wpf数据网格将加载数据。然后,用户可以对加载到datagrid中的数据执行一些操作。为了执行特定操作,用户从数据网格中选择一行,然后单击执行所需操作的wpf按钮。此操作由后台工作程序完成,并在完成后刷新comobox。它会刷新,因为combox中的每个项目都有一个需要重新计算的计数器,然后在操作完成后在组合框中刷新。

我的问题如下:一旦操作完成,如果用户点击组合框,它会冻结,并且在几秒钟内没有响应,大约10秒,在那几秒之后,组合框响应。它只发生在生产环境中的计算机中。在其他计算机中它不会发生。我无法重现它。

那么我可以使用任何.NET调试器来检测死锁,线程中的异常行为,锁等吗?

我正在尝试使用MDbg.exe,但是从MDbg提示控制台,当我尝试连接到进程(应用程序运行)时,应用程序冻结...

从MDbg提示控制台我使用以下命令附加到进程:

a PID

此外,从MDbg提示控制台我尝试使用以下命令加载SOS.dll,但它说未找到扩展:

load sos clr

我不确定我是否正确使用MDbg,我之前没有使用它。

c# wpf mvvm .net-3.5 mdbg
1个回答
0
投票

调试时按下工具栏上的“暂停”按钮,它将在当前行中断。

它应该让您了解导致问题的原因

© www.soinside.com 2019 - 2024. All rights reserved.