難住了。之前發佈過類似的問題。我們有一個非常大的WPF應用程序,在某些機器上運行良好,但在其他機器上,突然之間,其中一個CPU內核被鎖定爲100%(僅一個內核),應用程序凍結。當顯示上下文菜單或組合框下拉菜單(即Popup控件)時,通常會發生這種情況,這就是爲什麼我們無法調試此功能,因爲當時沒有用戶代碼正在執行。它讓我們瘋狂,因爲再次,在大多數機器上運行良好,但只有少數機器會凍結。什麼原因WPF應用程序可以固定CPU並將應用程序鎖定在某些計算機上而不是其他計算機上?
奇怪的是,當我們在虛擬機中運行它,它運行偉大有太多!瘋!不知道是什麼導致了這一點,或者更重要的是,甚至在哪裏開始看,因爲正如我所說的,沒有用戶代碼正在運行。
這發生在只有10%左右我們的機器,但它始終發生在那些機器。所有的都是乾淨的(即相對較新的操作系統安裝,沒有瘋狂的應用程序等),大多數是相同的機器spec-wise:類似的CPU,類似的內存,相同的視頻驅動程序和服務包。
所以我在標題所說,任何人都可以提出可能的原因,一個WPF應用程序將針CPU和鎖定某些計算機而不是其他的應用程序?我們只是難住!
上下文菜單?也許顯示一些代碼。對於ComboBox同樣的問題。你嘗試了很簡單的上下文菜單/組合框?既然都是彈出窗口,你是不是試圖展示一個彈出窗口來查看這是否是核心問題?可能是圖形卡/圖形驅動程序相關的,因爲在VM圖形管理變更,但你說,這兩個圖形設置是相同的...也許(再次看到問題來自哪裏)嘗試強制軟件渲染。 – GameAlchemist 2012-01-27 03:52:09
沒有代碼顯示。帶有幾個附加命令的簡單標準上下文菜單。檢查了'CanExecute'處理程序,那裏也沒有什麼奇怪的。此外,它們不存在組合框。順便說一句,我純粹猜測Popup,但這似乎是一個普遍的事情。不過,再次發生這種情況時,一切都會凍結,甚至VS.如果這是一個代碼問題,我應該仍然能夠進入它。這不是VS問題,因爲這也發生在沒有找到VS的已安裝應用程序中。大約5-10%的機器出現這種情況,但始終如一。 – MarqueIV 2012-01-27 04:15:25
[WPF Performance Suite](http://msdn.microsoft.com/zh-cn/library/aa969767.aspx)有一些工具可幫助您找出問題的根源。 – 2012-01-27 05:22:16