raceOnRCWCleanup MDA

注意

本文特定于 .NET Framework。 它不适用于 .NET 的较新版本实现,包括 .NET 6 及更高版本。

当使用命令(如 Marshal.ReleaseComObject 方法)发出一个调用来发布运行时可调用包装 (RCW) 时,如果公共语言运行时 (CLR) 检测到该包装正在使用中,则激活 raceOnRCWCleanup 托管调试助手 (MDA)。

症状

使用 ReleaseComObject 或类似方法释放 RCW 期间或之后发生访问冲突或内存损坏。

原因

正在另一个线程中或释放线程堆栈中使用 RCW。 无法释放使用中的 RCW。

解决方法

不要释放在当前或在其他线程中可能使用的 RCW。

对运行时的影响

此 MDA 对 CLR 无任何影响。

输出

描述错误的消息。

Configuration

<mdaConfig>
  <assistants>
    <raceOnRCWCleanup/>
  </assistants>
</mdaConfig>

请参阅