2010-11-02 262 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