Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
тюмгу / Лекции КБ ИБАС 1 курс 2 семестр / лекция9 Безопасность 2018.pptx
Скачиваний:
14
Добавлен:
08.12.2019
Размер:
155.99 Кб
Скачать

По завершении поиска недоступных объектов выполняются коды деструкторов отобранных объектов.

Ссылки на объекты, для которых выполнились деструкторы, размещаются в списке объектов, подлежащих удалению, но само удаление происходит в следующем сеансе сборки мусора!

Выводы:

Порядок исполнения деструкторов неизвестен.

Когда будет вызван деструктор, неизвестно.

Неизвестно, будет ли деструктор вызван вообще.

Обработка объектов с деструкторами требует дополнительных ресурсов памяти и процессорного времени.

31

При этом объекты не только

занимают память,но и могут содержать ссылки на другие

объекты с деструкторами,это, в свою очередь, задержит их

уничтожение.

Ситуации, когда использование

 

деструкторов оправданно:

 

 

деструктор может потребоваться для

 

освобождения ресурсов, занятых объектом

 

(например, запись данных в файл и/или его

 

закрытие

 

 

деструктор позволяет узнать,

 

 

когда же происходит сборка мусора.

32

using System;

namespace destr_test

{

class Destruct

{

private int k;

//конструктор

public Destruct (int i)

{

k = i;

}

//деструктор

~Destruct ()

{

Console.WriteLine ("Удаление " + k);

}

33

//создание объекта, локализованного в методе

public void Obj_Generator (int i)

{

Destruct obj = new Destruct(i);

}

}

class Class1

{

static void Main(string[ ] args)

{

int count;

Destruct obj = new Destruct (0);

//создаем много объектов

for (count = 1; count < 10000; count++)

obj.Obj_Generator (count);

}

}

}

34