Architecture Net


Управление сборкой мусора - часть 2


Приведем результат работы программы. Обратите внимание, что деструктор вызывается после того, как программа напечатает end (конец).

start // начало
c'tor
middle // середина
end // конец
d'tor

Однако, если раскомментировать строку, содержащую вызов метода SuppressFi-nalize, деструктор не будет вызван вообще, что доказывается следующей выдачей.

start // начало
с' tor
middle // середина
end // конец

Кроме того, если раскомментировать оператор, в котором используется delete (удалить), деструктор будет вызван до того, как программа напечатает end (конец).

start // начало
c'tor
middle // середина
d'tor
end // конец

Наконец, если раскомментировать только два оператора, содержащих вызовы методов Collect (Собрать) и WaitForPendingFinalizers, деструктор опять будет вызван до того, как программа напечатает end (конец) В этом случае вызов метода Collect (Собрать) приводит к вы зову деструктора, а метод WaitForPendingFinalizers приостанавливает выполнение текущего потока до завершения работы деструктора.

start // начало
c'tor
middle // середина
d'tor
end // конец


CompEbook.ru Железо, дизайн, обучение и другие




Начало  Назад  Вперед



Книжный магазин