C#知识系列:GCHandleType的作用

总结:

        Normal:对象被标记为完全不被GC管理的状态,但会被GC移动内存位置,需要我们手动调用Free来释放对应的GC对象

        Pinned:对象被标记为完全不被GC管理的状态,不被GC回收也不被GC移动内存地址,需要我们手动调用Free来释放对应的GC对象

        Weak:如果对象被标记为“不可达”(没有被任何对象使用,需要清除的状态)时(但是其对象的内存还未真的被回收),Weak所指向的对象就会标记为null;不需要我们手动调用Free来释放对应的GC对象

        WeakTrackResurrection:如果对象在最終處理期間重新恢復狀態控制代碼不歸零;也就是说只有GC对象最终被回收,在此之前,我们都能够通过Handle获取到实际对象,不需要我们手动调用Free来释放对应的GC对象

 

参考:

        GCHandleType Enum

        c# - GCHandle:何时显式使用GCHandleType.Normal?

        弱引用是什么


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部