调试程序在另一台机器上冻结

时间:2016-04-09 04:50:53

标签: c# wpf multithreading

我的应用程序表现出奇怪的行为,我很难搞清楚。它在我的机器和许多用户机器上运行良好。然而,在某些机器上,看似随意,它只是挂起。我能够与用户进行支持在线会议,并在系统停止时对其系统进行跟踪。这是一个跟踪屏幕截图:

enter image description here

看起来30秒内有29.6分,一些线程正在等待彼此完成,并被称为近6000次。我一直试图谷歌这个,并在这里看起来很多,从我收集到这表明线程死锁的情况。问题是这个应用程序只在几个位置使用后台线程,并且就我所知,这个构造函数不应该是其中之一。以下是建筑商的代码:

        InitializeComponent();

        if (KMApplication.Settings != null)
        {
            _useWin10 = KMApplication.Settings.ForceSpellingMode == SpellChecker.SpellingModes.Windows10
                || (KMApplication.Settings.ForceSpellingMode == SpellChecker.SpellingModes.Automatic && Utility.IsWindows10());
        }

此控件的XAML非常冗长,但如有必要,我可以复制它......

所以我的问题是,是否有人可以告诉我发生了什么,或者不知道在这里寻找问题的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

好的,经过大量的调试和测试,我发现这与线程无关。它实际上与所有事物的拼写检查有关。它最终成为this question中显示的问题。如果你看看am7zd的答案,他们会准确描述最终的问题。不知道为什么它在跟踪中以这种方式显示但是它具有误导性,它实际上在所有文本框中注册了一堆字典并且永远创建它们。在这个用户的情况下,在该设置中有1800个不存在的文件,一旦我清除它们,一切都恢复到正常速度。

希望能帮助遇到类似问题的人......