我正在制作视频游戏。在这个级别,我需要找到一种方法来从图像释放内存,一旦我将它们的源设置为null。
当我不使用图像时,其源被设置为空。
imgExample.Source = null;
但它没有足够的记忆力。
当我对MediaElements做了类似的事情时,我使用这种方法来释放未使用的内存:
foreach (MediaElement thisMedia in Videos)
{
thisMedia.Source = null;
thisMedia.Stop();
thisMedia.Close();
}
然后申请:
GC.Collect();
在相关地点。
现在,我正在尝试用Images做类似的事情。 "关闭"无法在图像上使用。我尝试使用" Freeze()"但它只会变得更糟。在任何情况下,在为Image分配新的源时使用Freeze,而我想要相反 - 当source变为null时执行某些操作。
我尝试使用谷歌搜索问题,并进入此页面: https://msdn.microsoft.com/en-us/library/system.drawing.image(v=vs.110).aspx
我认为这些方法:" Dispose"和#34;敲定"可能很有用。
但是,我不能使用:
imgExample.Dispose();
或
imgExample.Finalize();
方法不正确,或者我错过了使用指令。
处理未使用的内存的正确方法是什么?
编辑:我忘了说,那是" imgExample"是XAML中定义的图像。最好不要用后面的代码中的新图像替换这些图像。