Я знаю, что роль функции dispose заключается в очистке неуправляемых ресурсов.
но согласно шаблону Microsoft (что я понимаю) они делают это:
Они открыли новую централизованную функцию, которая принимает bool
(isDispoisng);
если True
, то есть от dispose func (используя using
или что-то еще) - и он очищает неуправляемый и управляемый
если false
, то оно получено от финализатора / деструктора. и он убивает только неуправляемых.
Я не понимаю, почему паттерн Microsoft убивает также managed
, если isDispoisng==True
(см. Слова, выделенные жирным шрифтом).
Я думал Финилизация должна убить всего неуправляемого ....
Не могли бы вы объяснить?
Чего они хотели достичь в этом?