【发布时间】:2021-10-23 15:52:31
【问题描述】:
在我的游戏中,用户可以从图库中选择多个图像并将它们加载到游戏中。我创建了一个从文件路径获取图像的函数。在那个函数中,我声明了局部变量 byte[]。所以在读取文件后,我需要将该字节 [] 释放到释放的内存中。这是我的代码:
if (File.Exists(filePath))
{
byte[] fileData = File.ReadAllBytes(filePath);
Texture2D tex = new Texture2D(2, 2);
tex.LoadImage(fileData);
}
从 byte[] 加载纹理后是否需要清除 byte[] ????用户可以从图库中选择任何图像文件,因此没有文件大小限制。
【问题讨论】:
-
Do I need to clear byte[] after texture is loaded from byte[]号 -
由于
byte[]没有实现IDisposable你没有到Dispose(清除、释放、免费等) ) 它。byte[]分配的内存将由 Garbage Collector (GC) 释放。 -
so there is no limit of filesize.. 是的 .. 默认情况下,一个数组最多可以有int.MaxValue元素;)所以如果大约 2GB 无论如何都不能填满你设备的内存,那么最新的c#本身就有有问题^^
标签: c# unity3d memory-management memory-leaks garbage-collection