C# 调试游戏时出现OutofMemory异常

C# 调试游戏时出现OutofMemory异常,c#,xna,xna-4.0,C#,Xna,Xna 4.0,到目前为止,我已经成功地在XNA中创建了一个游戏,并且在尝试调试时遇到了以下错误 spriteBatch = new SpriteBatch(GraphicsDevice); 从输出接收到的错误如下 'Duality.exe' (CLR v4.0.30319: Duality.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll' Sk

到目前为止,我已经成功地在XNA中创建了一个游戏,并且在尝试调试时遇到了以下错误

spriteBatch = new SpriteBatch(GraphicsDevice);
从输出接收到的错误如下

'Duality.exe' (CLR v4.0.30319: Duality.exe): Loaded  'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll' Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
A first chance exception of type 'System.OutOfMemoryException' occurred in Microsoft.Xna.Framework.Graphics.dll

Unhandled Exception: OutOfMemoryException.
这里还有对
SpriteBatch
的任何引用。这些文件位于文件的不同部分,而不是全部位于同一区域

//Outside of all Methods
SpriteBatch spriteBatch;
//In Draw Method
spriteBatch.Begin();
        /*spriteBatch.Draw(cursorTex, cursorPos, Color.White);*/
        spriteBatch.End();
        base.Draw(gameTime);
 spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);
 base.Draw(gameTime);
        //The updating the mouse state
        cursorPos = new Vector2(mouseState.X, mouseState.Y);
        cursorPos = new Vector2();
        spriteBatch.End();

你是否妥善处理了所有物品?可能是内存泄漏,或者spritebatch太大,无法放入内存。尽管最后一部分似乎不太可能。尝试删除第一个
base.Draw(gameTime)
,它在任何
spriteBatch
开始/结束块之外。此外,请尝试将更新代码与图形代码分离。在
Update
方法中移动
cursorPos
更新。这很可能不会解决您的问题,但保持代码分离和干净是一个好习惯。@Alex内存泄漏是什么,我如何修复它?此外,每次调用update或draw方法时,请始终避免创建新对象。在您的情况下,
cursorPos
应该在不重新创建的情况下进行更新。只需将属性分别设置为
mouseState
。这会解决你的问题。