C#初学23 垃圾回收机制 弱引用

    技术2022-07-11  114

    CLR的一个核心功能-垃圾回收 垃圾回收的目的:提高内存利用率 垃圾回收期,只回收托管堆中的内存资源,不回收其他资源(数据库连接、文件句柄、网络端口等) 什么样的对象才会被回收? 没有变量引用的对象。 什么时候回收? 不确定,当程序需要新内存的时候开始执行回收,垃圾回收是自动执行的,不需要手动干预。 GC.Collect()//手动调用垃圾回收期。不建议使用,垃圾回收时会暂停一下,让程序自动去GC。 垃圾回收器中 “代” 的概念 共3代, 0代 、1代、2代。 各代的回收频率:第0代最高,其次第1代,再次第2代。 弱引用

    Person p = new Person(); WeakReference wr = new WeakReference(p); 对p进行弱引用 p=null; object o=wr.Target; 判断是否被垃圾回收 if(o !=null) 若未被回收 { Person p1 = o as Person; 然后就可以使用Person对象了(这个对象还是原来的对象) }
    Processed: 0.010, SQL: 9