对垃圾回收的认识

.net内置了垃圾回收的机制,balabala一大堆 我就觉得微软很贴心,我们也没必要手动回收了...

弱引用很好用,可以用一下

//Person p1 = new Person();
            //Person p2 = p1;
            //p1 = null;

            Person p1 = new Person();

            //虽然wr弱引用,还是指向了Person对象,但是依然可以进行垃圾回收。
            WeakReference wr = new WeakReference(p1);//弱引用。

            p1 = null;
           // GC.Collect();

            //判断p1是否已被回收,如果为false表示已经回收。
            Console.WriteLine(wr.IsAlive);
            Console.ReadKey();


            ////......

            ////弱引用的作用:
            ////当下次使用该对象时,如果对象还没有被垃圾回收,则可以直接通过   //这块是亮点
            ////弱引用来使用,如果已经回收了,则重新new一个。
            ////这样做就有可能减少创建新对象的次数。

            //if (wr.Target!=null)
            //{
            //    Person p = (Person)wr.Target;
            //}
            //else
            //{
            //    new Person();
            //}

posted @ 2011-05-19 18:45  winchou  阅读(260)  评论(1编辑  收藏  举报