c# - 10秒后出现未处理的异常错误,为什么?

标签 c# error-handling xna runtime-error

我的游戏在运行 10-15 秒后收到以下警告/错误消息,即使在没有与游戏交互的情况下也会出现这种情况:

An unhandled exception of type 'System.ComponentModel.Win32Exception' occurred in System.Drawing.dll

Additional information: The operation completed successfully

我想知道是否需要调用 Dispose() 方法来删​​除正在加载时未使用的对象,即使它们已从游戏世界中删除?

我将所有对象存储为列表(如下所示)

class Items
{
    public static List<Obj> objList = new List<Obj>();

    public static void Initialize()
    {
        //The Player
        objList.Add(new Player(new Vector2(50, 50)));
        //The Enemies
        objList.Add(new Enemy(new Vector2(500, 400)));
        objList.Add(new Enemy(new Vector2(600, 200)));
        //The Collectibles 
        objList.Add(new BlueBall(new Vector2(300, 400)));
        objList.Add(new GreenBall(new Vector2(350, 100)));
        objList.Add(new OrangeBall(new Vector2(65000, 250)));
        objList.Add(new PinkBall(new Vector2(100, 400)));
        objList.Add(new RedBall(new Vector2(600, 400)));
        objList.Add(new YellowBall(new Vector2(500, 250)));

    }

然后我在 Game1 类中调用 Items.Initialize

我目前也有一个碰撞方法,一旦一个对象与另一个对象发生碰撞,就会调用该方法,我认为这可能会导致问题,但我不是 100%。就我的游戏而言,我目前仅将对象状态设置为 = alive = false; 以便“杀死”它们并将它们从屏幕上删除,这可以在下面的示例中看到玩家和敌人的碰撞:

 //Collision with enemy
            Enemy enemy = CheckCollisionAgainst<Enemy>();
            if (enemy != null)
            {
                gameOver.Play();
                alive = false;
            }

我现在一直遇到这个错误,并且无法找到解决方案来阻止它发生。正如我之前所说,它发生在游戏运行 10-15 秒后,因此在修复此错误之前我无法继续使用任何其他功能。

感谢您的帮助并提前致谢。

最佳答案

我发现了一些有趣的信息,看起来 try catch 不会为你做任何事情,因为它可能是你要求 c# 生成的图形数量。您必须降低显示的图形质量或减少代码中需要图形的对象数量,请参阅:

System.ComponentModel.Win32Exception: The operation completed successfully

看来您不是唯一遇到此问题的人。

人们在遇到同样的异常(exception)之前通常对图形有很高的要求,优化你的代码是你所需要的,设法减少游戏所需的内存并不是一个简单的任务。勇气我的 friend !

ps。从 dispose() 开始将是一个好主意;)

关于c# - 10秒后出现未处理的异常错误,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31190660/

相关文章:

c# - 正则表达式分割线(csv 文件)

c# - 我怎样才能记住 super 调用父级?

c# - 为什么派生自 ControllerBase 与 Controller for ASP.NET Core Web API?

Angular 4,自定义错误处理程序无法识别自定义错误

c# - 在 64 位 Windows 7 上运行 XNA 游戏时出现问题

c# - 多次按下按钮调用方法

c# - Entity Framework - 创建模型时无法使用上下文

reactjs - 如何处理 fetch() 中的错误请求

javascript - 错误 : Cannot find module 'wrench' , 当我运行 gulp 命令时出现此错误

C#/HLSL 和 XNA - 在 HLSL 中通过百分比将 2 种颜色混合在一起