在过去的几年中,我一直在使用WPF在混合模式应用程序中显示各种UI元素。 WPF由C#程序集用于生成UI - 它引用了一个包含一些本地代码的C ++ / CLI构建的程序集。 本地代码没有进行任何OS调用,仅仅是计算。
当使用附加了调试器的方式运行时,在关闭应用程序后,我看到托管调试助手“RaceOnRCWCleanup”触发 - 这表明存在某个具有多线程清理问题的COM组件。
我没有以任何方式直接使用COM,但是可能是C ++ / CLI或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#
有人遇到过相同的问题吗?有人知道发生了什么吗?