我在Windows 7 64bit上有一個.NET 3.5 WPF
應用程序。我遇到了拖動和移動主應用程序窗口時發生的奇怪的系統凍結問題。基本上整個系統凍結(UI)並且應用程序停止渲染。 調出任務管理器(CTRL + ALT + DEL)解凍系統和應用程序。WPF應用程序凍結Windows 7
應用程序本身是一個在後臺線程中處理大量消息的交易應用程序。
有沒有人遇到過這類問題?特別是任務管理器解凍凍結的怪異。什麼可能是這種奇怪的行爲的原因?
我幾乎可以肯定它與調度某些操作到UI線程有關。
我在Windows 7 64bit上有一個.NET 3.5 WPF
應用程序。我遇到了拖動和移動主應用程序窗口時發生的奇怪的系統凍結問題。基本上整個系統凍結(UI)並且應用程序停止渲染。 調出任務管理器(CTRL + ALT + DEL)解凍系統和應用程序。WPF應用程序凍結Windows 7
應用程序本身是一個在後臺線程中處理大量消息的交易應用程序。
有沒有人遇到過這類問題?特別是任務管理器解凍凍結的怪異。什麼可能是這種奇怪的行爲的原因?
我幾乎可以肯定它與調度某些操作到UI線程有關。
問題是WCF服務死鎖。類似於this的問題
在處理消息傳入消息的服務必須按以下方式在UI線程上添加到集合中。
Action action = new Action(() =>
{
lock (_messagesLock)
{
_messages.Remove(message);
}
});
_dispatcher.Invoke(DispatcherPriority.Normal, action);
更改
_dispatcher.Invoke(DispatcherPriority.Normal, action);
要
_dispatcher.BeginInvoke(DispatcherPriority.Normal, action);
解決的問題。
不適用於我(WPF for Win 8.1) –
在StackOverflow上發現了一些可能有所幫助的舊帖子,據說這可能是由於字體緩存。
「我有同樣的問題,這是一個腐敗的字體緩存!
的解決方案見http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/7cc032c1-5f4d-4518-adc6-f53afd051e6b。
」
這裏是被要求的步驟採取。
1. Run services.msc
2. Stop Windows Presentation Foundation Font Cache 3.0.0.0 service
3. Delete FontCache3.0.0.0.dat
in XP:
%systemdrive%\Documents and Settings\LocalService\Local Settings\Application Data
in Vista: %windir%\ServiceProfiles\LocalService\AppData\Local
4. Restart the machine
我所知道的是,你可以做到以下幾點。
Windows操作系統有一個就設在這裏的字體緩存文件:C:\ WINDOWS \ SYSTEM32 \ FNTCACHE.DAT
刪除此文件,並重新啓動系統。
我已經試過這個解決方案,它沒有幫助。 – Ender
由於WPF使用DirectX,您還應該確保DirectX和您的視頻驅動程序是最新的並且正常工作。錯誤的視頻卡或視頻驅動程序可能會導致WPF出現問題,而這可能不會在其他Win32應用程序中出現。
如果您正在使用VS2010和運行在Win 7 64的WPF應用程序位回答了你的問題可能是這一個:通過改變視覺體驗
提高性能你可能有一個問題VS2010中的硬件加速。因爲這個原因,使用WPF構建渲染應用程序時遇到了問題。
如果不解決您的問題,去你的顯卡設置(NVIDIA或AMD),做一個「重置設置」。然後再試一次。
此問題在VS2010和生產環境中都會呈現(通過ClickOnce發佈) – Ender
是的,我經歷了CTRL + ALT + DELETE解凍一個凍結的系統。 –
Favorite-ed:Oah ...我現在正在使用這種WPF應用程序,最後我想要凍結操作系統。我對這方面的任何數據感興趣(即潛在的來源/這個問題的解決方案) – paercebal
@David:你的情況下系統凍結的根本問題是什麼? – Ender