Esempio n. 1
0
        static void Main(string[] args)
        {
            //Создаем первый объект и заполняем массив на 1000000 массивами из 100 Int переменных
            Console.WriteLine("Первый объект заполняем массив на 1000000 массивами из 100 Int переменных");
            var inst = new MyClass();

            for (int i = 0; i < inst.obj.Length; i++)
            {
                inst.obj[i] = new int[100];
            }
            Console.WriteLine("Очистка методом Dispose");
            inst.Dispose();
            GC.Collect();
            GC.WaitForPendingFinalizers();
            Console.WriteLine(new string('_', 20));


            //Создаем второй объект и заполняем массив на 1000000 массивами из 500 string переменных
            Console.WriteLine("Второй объект заполняем массив на 1000000 массивами из 500 String переменных\nОсвобождение ресурсов используя Using(Dispose Вызывается приотработке метода внутри конструкции)");
            using (var inst2 = new MyClass())
            {
                for (int i = 0; i < inst2.obj.Length; i++)
                {
                    inst2.obj[i] = new string[500];
                }
            }
            GC.Collect();
            GC.WaitForPendingFinalizers();
            Console.WriteLine(new string('_', 20));

            //Создаем третий объект
            Console.WriteLine("Третий объект\nОсвобождение ресурсов произойдет после прохода сборщика мусора");
            var inst3 = new MyClass();

            GC.Collect();
            GC.WaitForPendingFinalizers();
            Console.WriteLine("Для выхода нажмите любую кнопку...");
            Console.ReadKey();
        }