【发布时间】:2011-05-07 21:47:42
【问题描述】:
我在 .NET 上固定一个对象并获得一个 GCHandle。我想泄露大部分这些 GCHandle 并忘记它们(因此对象继续被固定)。稍后,对于一些对象,我想取消固定它们。那时我只有对象(或对象的地址)。
似乎每个 GCHandle 固定调用都会返回一个新的 GCHandle。 GCHandle.ToIntPtr 和 GCHandle.FromIntPtr 表明本机 int 等效于这些 GCHandles。
是否可以从对象或 AddrOfPinnedObject 中获取 GCHandle(s)?
【问题讨论】:
-
我正在寻找相同的解决方案。我有一个不再受支持的第三方组件,它似乎在固定我们拥有的对象。我想强制释放该对象,但没有对 GCHandle 的引用。如果您找到任何解决方案,请传递。