3

我们遇到了运行我们基于 WPF 的程序的客户的问题。他可以启动应用程序,创建新文档,在树视图中导航菜单项以查看文档的不同部分,更改几乎(如果不是全部)我们的文本框值,将项目添加到列表(使用带有底层命令的按钮),等等,都没有任何问题。但是,如果他试图通过打开下拉列表来更改组合框的值,则程序将“无响应”并且 CPU 使用 100% 的容量(在一个内核上)。它也发生在其他随机的地方,但组合框总是失败。如果他只使用键盘并使用选项卡导航到组合框,他可以使用箭头键更改其值而不会出现问题。该程序检测到更改,并相应地采取行动,而不会出现任何问题或性能下降。

一些可能相关或不相关的信息:

  • 我们为所有 GUI 组件使用 DevExpress,主题为“Seven”(我们测试了它们的版本 12.1.8 和 12.2.4。问题是一样的……)
  • 我们的程序由许多文本框、组合框、数据网格、列表框等组成。我们正在使用停靠面板(如 Visual Studio),因此用户可以按照自己的方式修改布局。我们使用 WPF 3D 进行图形显示和编辑。
  • 我们的客户正在使用带有 Windows 7 Professional Edition SP1(64 位)的 HP 笔记本电脑(挪威语)
  • 他的分辨率:1920 x 1200
  • 他的窗口缩放系数:100%(您可以通过更改 DPI 来放大所有内容)
  • 他安装的.Net框架版本:4.0.30319.296
  • 他是他计算机上的本地管理员。
  • 无论安装位置如何,都会出现此问题。(我们已经尝试过 ClickOnce,我们的主要分发方法,并将已编译的发布文件以压缩 zip 的形式发送给他。没有区别……)
  • 这个客户的电脑和他公司的另外两台电脑上的问题都是一样的,所以这不仅仅是巧合。
  • 我们通过删除特定字体缓存尝试了“标准”WPF-applications-hangs-solution,但没有成功。(http://support.microsoft.com/kb/937135?wa=wsignin1.0)
  • 客户住在 700 公里外,所以我们希望避免到他那里调试他的电脑。
  • 即使设置尽可能相同,我们也无法在我们的任何计算机上重现该问题。(相同的 Windows、相同的 .Net 等等……)
  • 我们向他发送了我们程序的一个特殊版本,该版本记录了整个应用程序中所有公共方法和属性的所有入口和出口(我们已经为其编写了源代码)。将他的日志文件和我们的日志文件进行比较,以获得一个非常简单的操作,该操作在我们的计算机上运行良好,但在他的计算机上运行良好,没有发现任何结果。这些文件看起来几乎是一样的,除了他没有包括当他点击退出按钮时运行的标准退出程序,这是因为他不得不“杀死”应用程序。除了 GUI 相关调用在或多或少随机时间发生的唯一区别(例如检查它是否可以执行的按钮命令)。它记录在他和我们的日志中,只是在不同的时间。(如果我们比较在同一台计算机上完成的两个不同的日志,我们会得到相同的结果,

我们这里的选择已经不多了。

  • 有没有人对我们可以做些什么来解决这个问题有任何建议?
  • 您是否听说过其他有类似问题的用户?(解决了吗?怎么解决的?)
  • 有谁知道远程调试的好方法?(我们可以给他发送一些东西,以便他在发生这种情况时获得调用堆栈吗?)

任何提示都非常感谢!

最好的问候, 斯韦雷

4

1 回答 1

2

如果其他人遇到这种情况,我会发布解决方案!

这实际上是 .Net 框架中的一个错误。可以在此处找到更多信息以及修复问题的补丁程序链接: WPF 应用程序会固定 CPU 并将应用程序锁定在某些计算机上而不是其他计算机上的原因可能是什么?

感谢您为我提供答案的所有提示。

斯韦雷

于 2013-01-02T09:50:28.300 回答