RefCounted
继承: Object
派生: AESContext, AStar2D, AStar3D, AStarGrid2D, AudioEffectInstance, AudioStreamPlayback, CameraFeed, CharFXTransform, ConfigFile, Crypto, DirAccess, DTLSServer, EditorDebuggerPlugin, EditorDebuggerSession, EditorExportPlatform, EditorExportPlugin, EditorFeatureProfile, EditorFileSystemImportFormatSupportQuery, EditorInspectorPlugin, EditorResourceConversionPlugin, EditorResourcePreviewGenerator, EditorResourceTooltipPlugin, EditorSceneFormatImporter, EditorScenePostImport, EditorScenePostImportPlugin, EditorScript, EditorTranslationParserPlugin, EncodedObjectAsID, ENetConnection, EngineProfiler, Expression, FileAccess, HashingContext, HMACContext, HTTPClient, ImageFormatLoader, JavaClass, JavaScriptObject, KinematicCollision2D, KinematicCollision3D, Lightmapper, MeshConvexDecompositionSettings, MeshDataTool, MultiplayerAPI, Mutex, NavigationPathQueryParameters2D, NavigationPathQueryParameters3D, NavigationPathQueryResult2D, NavigationPathQueryResult3D, Node3DGizmo, OggPacketSequencePlayback, OpenXRAPIExtension, 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, Semaphore, SkinReference, StreamPeer, SurfaceTool, TCPServer, TextLine, TextParagraph, TextServer, Thread, TLSOptions, TriangleMesh, Tween, Tweener, UDPServer, UPNP, UPNPDevice, WeakRef, WebRTCPeerConnection, XMLParser, XRInterface, XRPose, XRPositionalTracker, 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 ( ) | |
reference ( ) | |
unreference ( ) |
方法说明
int get_reference_count ( ) const
返回当前的引用计数。
bool init_ref ( )
初始化内部引用计数器。只有在你真的知道你在做什么的时候才使用这个。
返回初始化是否成功。
bool reference ( )
内部引用增量计数器。只有在你真的知道你在做什么的时候才使用这个。
如果增量成功,返回 true
,否则返回 false
。
bool unreference ( )
内部引用减量计数器。只有在你真的知道你在做什么的时候才使用这个。
如果该对象在递减后应被释放,则返回 true
,否则返回 false
。
© 版权所有 2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC BY 3.0). Revision b1c660f7
.
Built with Sphinx using a theme provided by Read the Docs.