2010-11-02 128 views
7

在過去的幾年裏,我一直在使用WPF在混合模式的應用程序中顯示UI的各個位&。 C#程序集使用WPF生成UI - 它引用包含一些本機代碼的C++/CLI構建的程序集。本地代碼不會在幾個printf之外進行OS調用;它純粹是計算的。RaceOnRCWCleanup當關閉WPF應用程序

當使用附加的調試器運行時,我看到託管調試助手「RaceOnRCWCleanup」在關閉應用程序後觸發 - 提示有一些COM組件具有多線程清理問題。

我沒有直接以任何方式使用COM,但可能是C++/CLI或WPF。關於應用程序關閉的警告並不是特別可怕 - 畢竟,應用程序正在退出 - 但我很想知道發生了什麼問題。我能做任何事情來避免此警告嗎?有沒有一個隱藏的問題在等待咬我,或者它是一個虛假的警告?

這是一個例子堆棧跟蹤:

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# 

任何人都經歷了同樣的問題?有人知道發生了什麼事嗎?

+0

我們剛剛開始遇到這個問題後,我們的項目從.NET 3.5升級到4.0。 – 2011-02-17 17:46:17

回答

1

從什麼時候你會得到這個異常?我也是第一次在我們的wpf商業應用程序上獲得它。每次關閉應用程序時都會持續發生,而不會做出重大更改。也許有些Windows Update是邪惡的來源?我們也沒有弄清楚它來自哪裏,也沒有如何預防它。一旦我們設法解決異常,我會立即發佈解決方案。我不認爲它與你的C++/CLI程序集有關。我們不使用C++/CLI程序集。

1月

+1

我很確定自從很長一段時間以來,我一直在收到這個錯誤。我通常忽略它(在VS中沒有選中MDA),所以也許它工作了一段時間;但至少在一年前我已經看到了它 - 也許更多。 – 2010-11-03 15:21:13

+1

嗯。好吧,我的Windows更新理論可以被埋沒。瘋狂的事情是:昨天它似乎幾乎可以在每一個應用程序結束時重現。今天它根本沒有出現...因此,下次我得到它,我會嘗試使用.net反射器專業版來查找更具體的源代碼。謝謝您的回覆。 – JanW 2010-11-03 19:44:59

+0

我們可能會看到完全不同的東西,但如果你知道它是什麼,請務必發佈! – 2010-11-04 08:03:37