예제 #1
0
        public static void Exmaple_WeakReference()
        {
            var cache = new WeakCaehe <string, byte[]>();

            var data = new byte[100];

            cache.Add("d", data);

            byte[] fromCache;
            Console.WriteLine("Retrieval:" + cache.TryGetValue("d", out fromCache));
            Console.WriteLine("Same ref?" + object.ReferenceEquals(data, fromCache));
            fromCache = null;

            GC.Collect();
            Console.WriteLine("Retrieval:" + cache.TryGetValue("d", out fromCache));
            Console.WriteLine("Same ref?" + object.ReferenceEquals(data, fromCache));
            fromCache = null;

            data = null;
            GC.Collect();
            Console.WriteLine("Retrieval:" + cache.TryGetValue("d", out fromCache));
            Console.WriteLine("NULL? " + (fromCache == null));
        }
예제 #2
0
        static void Main(string[] args)
        {
            WeakCaehe <string, byte[]> .Exmaple_WeakReference();

            Console.ReadLine();
        }