gcUnmanagedToManaged MDA
每当一个线程从托管代码转换到非托管代码,gcUnmanagedToManaged
托管调试助手 (MDA) 就会导致垃圾回收。
症状
使用 COM 和平台调用来运行非托管用户组件的应用程序在 CLR 中导致了一个非确定性的访问冲突。
原因
如果一个应用程序运行非托管用户组件,则这些组件可能损坏了已垃圾回收的堆。 在垃圾回收器尝试审核对象图时,这会在 CLR 中导致访问冲突。
解决方法
通过在每次托管转换之前强制垃圾回收来启用此助手,可以减少从非托管组件损坏已垃圾回收的堆到发生访问冲突之间的时间。
对运行时的影响
导致每当发生从非托管代码到托管代码的线程转换时都进行垃圾回收。
输出
此 MDA 不会产生任何输出。
Configuration
<mdaConfig>
<assistants>
<gcUnmanagedToManaged/>
</assistants>
</mdaConfig>
请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈