gpt4 book ai didi

c# - 垃圾收集器行为

转载 作者:太空宇宙 更新时间:2023-11-03 21:39:49 24 4
gpt4 key购买 nike

我使用 C#(使用 XNA 4 和 MonoGame)。我使用内容管理器的 Load() 方法加载 Assets (纹理、音频)。当不再需要这些 Assets 时,如何从内存中正确地Unload()它们?

我假设一旦对加载 Assets 的所有引用都被覆盖(或设置为空),垃圾收集器会自动删除这些 Assets 。这是正确的还是由于 Assets 是通过 ContentManager 加载的, Assets 仍然被锁定?

是否需要调用“ContentManager.Unload()”来释放特定 CM 的 Assets ?

最佳答案

是的,如果您希望内容管理器中的 Assets 从内存中完全卸载,则必须调用Unload()。除了清除内容管理器的内部缓存(其中包含对您加载的所有内容的引用)之外,它还会对实现 IDisposable 的任何资源调用 Dispose()

请注意,ContentManager 维护内部资源缓存的原因是因为加载同一资源两次实际上加载同一资源两次:第二次,它只会将缓存的对象引用交给您。

关于c# - 垃圾收集器行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19911006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com