2011-08-30 75 views
7

Tôi có ứng dụng .NET 3.5 WPF trên Windows 7 64bit. Tôi đang gặp sự cố đóng băng hệ thống lẻ xảy ra khi kéo và di chuyển cửa sổ ứng dụng chính. Về cơ bản toàn bộ hệ thống bị đóng băng (UI) và ứng dụng ngừng hiển thị. Đưa trình quản lý tác vụ lên (CTRL + ALT + DEL) unfreezes cả hệ thống và ứng dụng.Ứng dụng WPF đóng băng Windows 7

Bản thân ứng dụng là một ứng dụng giao dịch xử lý một lượng lớn thông điệp trong các chủ đề nền.

Có ai đã gặp phải loại sự cố này không? Đặc biệt là sự kỳ quặc của công việc quản lý mở khóa đóng băng. Điều gì có thể là lý do cho hành vi kỳ lạ này?

Tôi gần như chắc chắn nó có liên quan đến việc gửi một số hành động nhất định đến chuỗi giao diện người dùng.

+0

Có, tôi đã trải qua CTRL + ALT + DELETE làm tan băng hệ thống cố định. –

+0

Yêu thích-ed: Oah ... Tôi đang làm việc ngay bây giờ trên loại ứng dụng WPF, và điều cuối cùng tôi muốn là đóng băng hệ điều hành. Tôi quan tâm đến bất kỳ dữ liệu nào có thể có về điều này (tức là nguồn/giải pháp tiềm năng cho vấn đề này) – paercebal

+0

@David: Vấn đề gốc của hệ thống bị đóng băng trong trường hợp của bạn là gì? – Ender

Trả lời

2

Vấn đề là bế tắc dịch vụ WCF.Sự cố tương tự với this

Trong dịch vụ xử lý tin nhắn đến, thư phải được thêm vào chuỗi giao diện người dùng vào bộ sưu tập theo cách sau.

Action action = new Action(() => 
      { 
       lock (_messagesLock) 
       { 
        _messages.Remove(message); 
       } 
      }); 
      _dispatcher.Invoke(DispatcherPriority.Normal, action); 

Thay đổi

_dispatcher.Invoke(DispatcherPriority.Normal, action); 

Để

_dispatcher.BeginInvoke(DispatcherPriority.Normal, action); 

Giải Quyết vấn đề này.

+0

Không hoạt động đối với tôi. (WPF cho Win 8.1) –

4

Tìm thấy một số bài đăng cũ trên StackOverflow có thể hữu ích, Người ta nói rằng có thể do bộ đệm phông chữ.

"Tôi đã có cùng một vấn đề. Đó là một bộ nhớ cache font !!

Xem http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/7cc032c1-5f4d-4518-adc6-f53afd051e6b kiếm một giải pháp.

"

WPF Application Hang

Dưới đây là các bước mà đã hỏi để lấy.

Trong Win 7

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 

Những gì tôi biết là bạn có thể làm như sau.

Hệ điều hành Windows có một tập tin phông chữ bộ nhớ cache mà nằm ở đây: C: \ Windows \ System32 \ FNTCACHE.DAT

Xóa tập tin này, và khởi động lại hệ thống của bạn.

+1

Tôi đã thử giải pháp này và nó không giúp được gì. – Ender

1

Vì WPF sử dụng DirectX, bạn cũng nên đảm bảo rằng DirectX và trình điều khiển video của bạn được cập nhật và hoạt động chính xác. Trình điều khiển video hoặc trình điều khiển video bị lỗi có thể gây ra sự cố cho WPF có thể không hiển thị trong các ứng dụng Win32 khác.

0

Nếu bạn đang sử dụng VS2010 và chạy các ứng dụng WPF trong Win 7 64 bit câu trả lời cho vấn đề của bạn có thể đây là một: Hiệu suất

Cải thiện bằng cách thay đổi hình ảnh đáng kinh

Bạn có thể có một vấn đề với Tăng tốc phần cứng trong VS2010. Tôi đã có một vấn đề với các ứng dụng dựng hình được xây dựng bằng cách sử dụng WPF vì điều này.

Hãy thử: http://blogs.msdn.com/b/zainnab/archive/2010/06/22/improving-performance-by-changing-the-visual-experience-vstipenv0017.aspx

Và nếu điều đó không khắc phục sự cố, đi đến thiết lập card màn hình của bạn (nvidia hoặc AMD) và làm một "thiết lập lại cài đặt". Sau đó thử lại.

+0

Sự cố này hiển thị trong cả VS2010 và trong sản xuất (được xuất bản qua ClickOnce) – Ender

Các vấn đề liên quan