RefCounted
Наследует: Object
Наследуется от: AESContext, AStar2D, AStar3D, AStarGrid2D, AudioEffectInstance, AudioSample, AudioSamplePlayback, AudioStreamPlayback, CameraFeed, CharFXTransform, ConfigFile, Crypto, DirAccess, DTLSServer, EditorContextMenuPlugin, EditorDebuggerPlugin, EditorDebuggerSession, EditorExportPlatform, EditorExportPlugin, EditorExportPreset, EditorFeatureProfile, EditorFileSystemImportFormatSupportQuery, EditorInspectorPlugin, EditorResourceConversionPlugin, EditorResourcePreviewGenerator, EditorResourceTooltipPlugin, EditorSceneFormatImporter, EditorScenePostImport, EditorScenePostImportPlugin, EditorScript, EditorTranslationParserPlugin, EncodedObjectAsID, ENetConnection, EngineProfiler, Expression, FileAccess, GLTFObjectModelProperty, HashingContext, HMACContext, HTTPClient, ImageFormatLoader, JavaClass, JavaObject, JavaScriptObject, KinematicCollision2D, KinematicCollision3D, Lightmapper, Logger, MeshConvexDecompositionSettings, MeshDataTool, MultiplayerAPI, Mutex, NavigationPathQueryParameters2D, NavigationPathQueryParameters3D, NavigationPathQueryResult2D, NavigationPathQueryResult3D, Node3DGizmo, OggPacketSequencePlayback, OpenXRAPIExtension, OpenXRFutureResult, OpenXRSpatialCapabilityConfigurationBaseHeader, OpenXRSpatialComponentData, OpenXRStructureBase, PackedDataContainerRef, PacketPeer, PCKPacker, PhysicsPointQueryParameters2D, PhysicsPointQueryParameters3D, PhysicsRayQueryParameters2D, PhysicsRayQueryParameters3D, PhysicsShapeQueryParameters2D, PhysicsShapeQueryParameters3D, PhysicsTestMotionParameters2D, PhysicsTestMotionParameters3D, PhysicsTestMotionResult2D, PhysicsTestMotionResult3D, RandomNumberGenerator, RDAttachmentFormat, RDFramebufferPass, RDPipelineColorBlendState, RDPipelineColorBlendStateAttachment, RDPipelineDepthStencilState, RDPipelineMultisampleState, RDPipelineRasterizationState, RDPipelineSpecializationConstant, RDSamplerState, RDShaderSource, RDTextureFormat, RDTextureView, RDUniform, RDVertexAttribute, RegEx, RegExMatch, RenderSceneBuffers, RenderSceneBuffersConfiguration, Resource, ResourceFormatLoader, ResourceFormatSaver, ResourceImporter, SceneState, SceneTreeTimer, ScriptBacktrace, Semaphore, SkinReference, SocketServer, StreamPeer, SurfaceTool, TextLine, TextParagraph, TextServer, Thread, TLSOptions, TranslationDomain, TriangleMesh, Tween, Tweener, UDPServer, UPNP, UPNPDevice, WeakRef, WebRTCPeerConnection, XMLParser, XRInterface, XRPose, XRTracker, ZIPPacker, ZIPReader
Базовый класс для объектов с подсчетом ссылок.
Описание
Базовый класс для любого объекта, который хранит счетчик ссылок. Resource и многие другие вспомогательные объекты наследуют этот класс.
В отличие от других типов Object, RefCounted сохраняют внутренний счетчик ссылок, чтобы они автоматически освобождались, когда больше не используются, и только тогда. Поэтому RefCounted не нужно освобождать вручную с помощью Object.free().
Экземпляры RefCounted, пойманные в циклической ссылке, не будут освобождены автоматически. Например, если узел содержит ссылку на экземпляр A, который напрямую или косвенно содержит ссылку на A, счетчик ссылок A будет равен 2. Уничтожение узла оставит A висящим со счетчиком ссылок 1, и произойдет утечка памяти. Чтобы предотвратить это, одну из ссылок в цикле можно сделать слабой с помощью @GlobalScope.weakref().
В подавляющем большинстве случаев использования создание экземпляра и использование производных от RefCounted типов — это все, что вам нужно сделать. Методы, предоставленные в этом классе, предназначены только для продвинутых пользователей и могут вызывать проблемы при неправильном использовании.
Примечание: В C# объекты с подсчетом ссылок не будут освобождаться мгновенно после того, как они больше не используются. Вместо этого сборка мусора будет запускаться периодически и освобождать объекты с подсчетом ссылок, которые больше не используются. Это означает, что неиспользуемые объекты будут оставаться в памяти некоторое время, прежде чем будут удалены.
Обучающие материалы
Методы
get_reference_count() const |
|
init_ref() |
|
Описания метода
int get_reference_count() const 🔗
Возвращает текущее количество ссылок.
Инициализирует внутренний счетчик ссылок. Используйте это только если вы действительно знаете, что делаете.
Возвращает, была ли инициализация успешной.
Увеличивает внутренний счетчик ссылок. Используйте это только если вы действительно знаете, что делаете.
Возвращает true, если приращение прошло успешно, false в противном случае.
Уменьшает внутренний счетчик ссылок. Используйте это, только если вы действительно знаете, что делаете.
Возвращает true, если объект должен быть освобожден после уменьшения, false в противном случае.