难住了。之前发布过类似的问题。我们有一个非常大的WPF应用程序,在某些机器上运行良好,但在其他机器上,突然之间,其中一个CPU内核被锁定为100%(仅一个内核),应用程序冻结。当显示上下文菜单或组合框下拉菜单(即Popup控件)时,通常会发生这种情况,这就是为什么我们无法调试此功能,因为当时没有用户代码正在执行。它让我们疯狂,因为再次,在大多数机器上运行良好,但只有少数机器会冻结。什么原因WPF应用程序可以固定CPU并将应用程序锁定在某些计算机上而不是其他计算机上?
奇怪的是,当我们在虚拟机中运行它,它运行伟大有太多!疯!不知道是什么导致了这一点,或者更重要的是,甚至在哪里开始看,因为正如我所说的,没有用户代码正在运行。
这发生在只有10%左右我们的机器,但它始终发生在那些机器。所有的都是干净的(即相对较新的操作系统安装,没有疯狂的应用程序等),大多数是相同的机器spec-wise:类似的CPU,类似的内存,相同的视频驱动程序和服务包。
所以我在标题所说,任何人都可以提出可能的原因,一个WPF应用程序将针CPU和锁定某些计算机而不是其他的应用程序?我们只是难住!
2012-01-27
MarqueIV
+0
上下文菜单?也许显示一些代码。对于ComboBox同样的问题。你尝试了很简单的上下文菜单/组合框?既然都是弹出窗口,你是不是试图展示一个弹出窗口来查看这是否是核心问题?可能是图形卡/图形驱动程序相关的,因为在VM图形管理变更,但你说,这两个图形设置是相同的...也许(再次看到问题来自哪里)尝试强制软件渲染。 –
2012-01-27 03:52:09
+0
没有代码显示。带有几个附加命令的简单标准上下文菜单。检查了'CanExecute'处理程序,那里也没有什么奇怪的。此外,它们不存在组合框。顺便说一句,我纯粹猜测Popup,但这似乎是一个普遍的事情。不过,再次发生这种情况时,一切都会冻结,甚至VS.如果这是一个代码问题,我应该仍然能够进入它。这不是VS问题,因为这也发生在没有找到VS的已安装应用程序中。大约5-10%的机器出现这种情况,但始终如一。 –
2012-01-27 04:15:25
+0
[WPF Performance Suite](http://msdn.microsoft.com/zh-cn/library/aa969767.aspx)有一些工具可帮助您找出问题的根源。 –
2012-01-27 05:22:16