Изменения документа Dispose

Редактировал(а) Alexandr Fokin 2024/06/02 16:03

От версии 1.5
отредактировано Alexandr Fokin
на 2023/02/15 23:27
Изменить комментарий: К данной версии нет комментариев
К версии 1.6
отредактировано Alexandr Fokin
на 2023/02/15 23:40
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -77,3 +77,14 @@
77 77   base.Dispose(disposing);
78 78   }
79 79  }{{/code}}
80 +|(% style="width:465px" %)Пример использование механизма отчистки для воскрешения (resurrection) объекта.
81 +\\Можно доработать для использования Dispose (не подавляется финализация, не выполняется повторная регистрация).
82 +Если объект внутри себя использует другие финализируемые объекты, то внутри блока финализатор их состояние может быть недетерминировано.|(% style="width:1030px" %){{code language="C#"}}class A {
83 + private IObjectPool _pool = ...;
84 +
85 + ~A() {
86 + //will not die. keep a reference in resurectedA.
87 + _pool.ReturnToPool(this);
88 + GC.ReRegisterForFinalize(this);
89 + }
90 +}{{/code}}