WPF应用程序中有一些崩溃,我无法弄清楚原因。在开发中我无法模拟问题,它只在生产和随机情况下发生。该应用程序具有多个用于不同进程的Timers和DispatcherTimers。
有关如何找到锁定点的任何建议?或者至少有一些线索从何处开始分析问题?
是否可以知道哪个方法锁定了UI线程?
谢谢
答案 0 :(得分:1)
这是你可能会想到的更常见的情况。你有竞争条件。您的申请时间会改变生产。
要做的是使用符号在发布模式下编译应用程序,并在开发计算机上进行挂起。然后你可以用visual studio附加它。然后,您可以找出正在运行的线程数以及每个线程的调用堆栈。这可能会让您深入了解正在发生的事情。
如果无法在开发计算机上进行复制,则下一步方法是创建故障转储文件。在生产机器上,打开任务管理器,右键单击该应用程序并选择"创建转储文件"。这将创建一个.DMP文件,您可以将其移回开发计算机并使用Visual Studio打开。您需要为应用程序提供完全符号文件,以便Visual Studio从您的调用堆栈中删除正面或反面。
这将帮助您入门。解决这些问题往往是非常困难的,而不是科学。祝你好运。
答案 1 :(得分:0)