RefCounted
Базовый класс для объектов с подсчетом ссылок.
Базовый класс для объектов с подсчетом ссылок.
Базовый класс для любого объекта, который хранит счетчик ссылок. Resource и многие другие вспомогательные объекты наследуют этот класс.
В отличие от других типов ReckfellObject, RefCounted сохраняют внутренний счетчик ссылок, чтобы они автоматически освобождались, когда больше не используются, и только тогда. Поэтому RefCounted не нужно освобождать вручную с помощью ReckfellObject.Free.
Экземпляры RefCounted, пойманные в циклической ссылке, не будут освобождены автоматически. Например, если узел содержит ссылку на экземпляр A, который напрямую или косвенно содержит ссылку на A, счетчик ссылок A будет равен 2. Уничтожение узла оставит A висящим со счетчиком ссылок 1, и произойдет утечка памяти. Чтобы предотвратить это, одну из ссылок в цикле можно сделать слабой с помощью @GlobalScope.weakref.
В подавляющем большинстве случаев использования создание экземпляра и использование производных от RefCounted типов — это все, что вам нужно сделать. Методы, предоставленные в этом классе, предназначены только для продвинутых пользователей и могут вызывать проблемы при неправильном использовании.
Примечание: В C# объекты с подсчетом ссылок не будут освобождаться мгновенно после того, как они больше не используются. Вместо этого сборка мусора будет запускаться периодически и освобождать объекты с подсчетом ссылок, которые больше не используются. Это означает, что неиспользуемые объекты будут оставаться в памяти некоторое время, прежде чем будут удалены.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
RefCountedКонструктор
public RefCounted();Методы4
GetReferenceCountint
public int GetReferenceCount();Возвращает текущее количество ссылок.
intInitRefbool
public bool InitRef();Инициализирует внутренний счетчик ссылок. Используйте это только если вы действительно знаете, что делаете. Возвращает, была ли инициализация успешной.
boolReferencebool
public bool Reference();Увеличивает внутренний счетчик ссылок. Используйте это только если вы действительно знаете, что делаете.
Возвращает true, если приращение прошло успешно, false в противном случае.
boolUnreferencebool
public bool Unreference();Уменьшает внутренний счетчик ссылок. Используйте это, только если вы действительно знаете, что делаете.
Возвращает true, если объект должен быть освобожден после уменьшения, false в противном случае.
bool