Tag: 堆损坏

.NET 4:托管代码是否会导致堆损坏?

我的multithreading托管程序中存在堆损坏。 做一些测试我发现只有当程序中的后台线程处于活动状态时才会发生损坏(它们是可切换的)。 线程使用一些第三方组件。 在检查了线程和第三方组件的代码(使用.NET Reflector)后,我发现它们都是托管的,即没有 “不安全”或“DllImportAttribute”或“P / Invoke”。 似乎纯托管代码导致堆损坏,这可能吗? UPDATE 除了使用Marshal类之外, 是否有可能在线程未正确同步的情况下破坏堆 ? 一个例子将非常感激。