2010-11-02 36 views
7

Trong vài năm qua, tôi đã sử dụng WPF trong ứng dụng chế độ hỗn hợp để hiển thị các bit khác nhau & phần giao diện người dùng. WPF được sử dụng bởi một assembly C# để tạo ra giao diện người dùng - nó tham khảo một assembly C++/CLI có chứa một số mã nguồn gốc. Mã gốc không thực hiện các cuộc gọi hệ điều hành nào ngoài một số printf; nó hoàn toàn là tính toán.RaceOnRCWCleanup khi đóng các ứng dụng WPF

Khi chạy với trình gỡ rối được đính kèm, tôi thấy trợ lý gỡ lỗi được quản lý "RaceOnRCWCleanup" sau khi đóng ứng dụng - gợi ý có một số thành phần COM với các vấn đề dọn dẹp đa luồng.

Tôi không sử dụng COM trực tiếp, nhưng có lẽ C++/CLI hoặc WPF là. Cảnh báo về việc tắt ứng dụng không phải là đáng sợ - sau khi tất cả, ứng dụng đang thoát anyway - nhưng tôi rất muốn hiểu những gì đang xảy ra. Tôi có thể làm gì để tránh cảnh báo này không? Có một con bọ ẩn nào đó đang đợi tôi cắn, hay là một cảnh báo giả mạo?

Đây là một ví dụ stacktrace:

mscorlib.dll!System.Runtime.InteropServices.Marshal.ReleaseComObject(object o) Line 1826 + 0xc bytes C# 
PresentationFramework.dll!System.Windows.Documents.TextServicesHost.DeactivateThreadManager() Line 465 + 0xd bytes C# 
PresentationFramework.dll!System.Windows.Documents.TextServicesHost.OnUnregisterTextStore(object arg) Line 331 C# 
PresentationFramework.dll!System.Windows.Documents.TextEditor.DetachTextStore(bool finalizer) Line 249 + 0x6b bytes C# 
WindowsBase.dll!System.Windows.Threading.Dispatcher.ShutdownImplInSecurityContext(object state) Line 1363 + 0xfffffffc bytes C# 
mscorlib.dll!System.Threading.ExecutionContext.runTryCode(object userData) Line 484 + 0xce bytes C# 

Có ai trải qua cùng một vấn đề? Có ai biết chuyện gì đang diễn ra không?

+0

Chúng tôi vừa mới bắt đầu gặp sự cố này sau khi nâng cấp các dự án của chúng tôi từ .Net 3.5 lên 4.0. –

Trả lời

1

Kể từ khi nào bạn nhận được ngoại lệ này? Tôi cũng đã nhận nó hôm nay lần đầu tiên trên ứng dụng doanh nghiệp của chúng tôi. Nó xảy ra liên tục mỗi khi tôi đóng ứng dụng, mà không có những thay đổi lớn. Có lẽ một số Windows Update là nguồn gốc của cái ác? Chúng tôi cũng không tìm ra nó xuất phát từ đâu, cũng như cách ngăn chặn nó. Tôi sẽ đăng một giải pháp ngay khi chúng tôi quản lý để giải quyết ngoại lệ. Tôi không nghĩ rằng nó có cái gì để làm với C + +/CLI lắp ráp của bạn. Chúng tôi không sử dụng C++/CLI.

Jan

+1

Tôi chắc chắn tôi đã nhận được lỗi này từ một thời gian rất dài. Tôi thường bỏ qua nó (có MDA không được kiểm tra trong VS), vì vậy có lẽ nó đã làm việc trong một thời gian; nhưng tôi chắc chắn đã nhìn thấy nó ít nhất một năm trước - có thể nhiều hơn. –

+1

Hmmm. Được rồi vì vậy cửa sổ của tôi cập nhật lý thuyết có thể được chôn cất. Điều điên rồ là: ngày hôm qua nó dường như được tái sản xuất trên hầu như mọi ứng dụng gần gũi. Hôm nay nó không hiển thị ở tất cả ... Vì vậy, thời gian tới tôi nhận được nó, tôi sẽ cố gắng tìm một nguồn cụ thể hơn với .net phản xạ pro. Cảm ơn bạn đã trả lời. – JanW

+0

Chúng tôi có thể nhìn thấy những thứ hoàn toàn khác nhau, nhưng nếu bạn đã từng tìm ra nó là gì, bằng mọi cách, hãy đăng nó lên! –

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