在過去的幾年裏,我一直在使用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#
任何人都經歷了同樣的問題?有人知道發生了什麼事嗎?
我們剛剛開始遇到這個問題後,我們的項目從.NET 3.5升級到4.0。 – 2011-02-17 17:46:17