我有一个C#应用程序组成的一个枢轴与多个数据透视图。正常的Pivotitems正常卸载并且不会泄漏内存。在两个项目上,我有Drawingsurfaces,我使用Monogame来渲染3D模型。在卸载和加载它们的支点时,我试图完全摧毁并完全重新创建“游戏”实例(主要是因为Monogame目前不允许您画两个表面,并且因为它们使用了大量内存,对他们来说都不够)。C#如何从内存中完全删除对象
我的问题来了,当我处理加载时创建的Xamlgame不释放它使用的所有内存。这意味着每次我重新创建Xamlgame时,它都会开始使用越来越多的内存,直到不再有剩下的内存。因此,我想知道是否有任何C#方式来完全处理加载对象时使用的所有内存。
任何Monogame的具体方式也将不胜感激。目前我首先处理顶点和索引缓冲区,然后清除我的顶点和索引列表,然后处理我的Basiceffect和GraphicsdeviceManager,然后我调用“游戏”本身并最终创建变量包含等于null的“游戏”。
PS。如果你曾经在XNA上做过这些,那么你也可以帮助我,因为它的语法基本相同。
EDIT(可能是MonoGame错误):
我现在已经成功地正确地清理所有缓冲区等起来。尽管我的BasicEffect仍然有内存泄漏。我已经试过配置它并将其设置为空,但无论它每次重新加载我的数据透视表时是否一直使用越来越多的内存。
如果您正在处理所有'IDisposable'资源,那么['GC.Collect'](http://msdn.microsoft.com/zh-cn/library/System.GC.Collect.aspx)不会工作? – Romoku
我打电话给它,但它似乎没有效果 – Gerharddc
你确定你正在处理所有的连接和项目吗?你能分享你的代码吗? –