1

我有一个愚蠢的问题。如果我在 C++ 中有一个数组,我用它来存储对各种 C# 对象的许多引用(我猜是 IntPtrs,还没有那么远),C# 中的 GC 怎么知道不收集这些对象? 我的意思是,标记和扫描算法无法看到非托管代码结构,对吧?那么,如果对这些 C# 对象的唯一引用在这个结构中,我是否不需要做一些额外的事情来告诉 GC 不要收集它们?

4

1 回答 1

3

是的,您必须特别注意确保您的对象不仅保持活动状态并且不受 GC 影响,而且还没有被 GC 移动。

看看: http ://dotnet.dzone.com/news/net-memory-control-use-gchandl

于 2012-12-14T17:12:28.810 回答