C# VisualStudio说我的构建成功了,但是我的程序在一分钟后崩溃了

C# VisualStudio说我的构建成功了,但是我的程序在一分钟后崩溃了,c#,visual-studio,visual-studio-2017,C#,Visual Studio,Visual Studio 2017,我已经多次调试了我的C#代码,并查看了结果以修复代码。我已经修复了所有错误,直到没有更多错误。我建立了我的程序,但当我去启动它时,它只是在那里停留了一分钟,然后崩溃了。我不知道我的代码出了什么问题 我正在使用Visual Studio 2017。此外,我的程序应该每30秒拍摄一次屏幕截图,然后将其保存到C驱动器上名为SysApp的文件夹中 代码: 我的猜测是,要么内存不足,要么其他资源(如图形句柄)不足 我建议您使用JetBrains()中的dotMemory运行应用程序,这将帮助您跟踪问题 正

我已经多次调试了我的C#代码,并查看了结果以修复代码。我已经修复了所有错误,直到没有更多错误。我建立了我的程序,但当我去启动它时,它只是在那里停留了一分钟,然后崩溃了。我不知道我的代码出了什么问题

我正在使用Visual Studio 2017。此外,我的程序应该每30秒拍摄一次屏幕截图,然后将其保存到C驱动器上名为SysApp的文件夹中

代码:


我的猜测是,要么内存不足,要么其他资源(如图形句柄)不足

我建议您使用JetBrains()中的dotMemory运行应用程序,这将帮助您跟踪问题


正如其他人所说,空泛的捕获声明也是危险的。而是在其中添加一些调试日志代码来记录异常。

我的猜测是,内存或其他资源(如图形句柄)正在耗尽

我建议您使用JetBrains()中的dotMemory运行应用程序,这将帮助您跟踪问题


正如其他人所说,空泛的捕获声明也是危险的。而是在其中添加一些调试日志代码来记录异常。

存在内存泄漏,因为在循环的每次迭代后,
位图和
图形都不会被处理

memoryImage.Save(str)之后添加以下内容修复它:

memoryGraphics.Dispose();
memoryImage.Dispose(); 

内存泄漏是因为在循环的每次迭代后,
Bitmap
Graphics
未被处理

memoryImage.Save(str)之后添加以下内容修复它:

memoryGraphics.Dispose();
memoryImage.Dispose(); 

欢迎来到StackOverflow。要提出好问题,请阅读。要进行调试,请阅读跟踪和调试,以便添加日志记录,如“步骤1确定”、“步骤2确定”。此外,还要学习设置断点和单步执行代码。仅仅因为没有语法错误并不意味着您的代码可以工作!最好学会自己调试东西,这样做你会学到更多。如果我们只是给你一个答案,你永远也学不会钓鱼:)(“给一个人一条鱼,你喂他一天…”)永远不要用“catch{}”@DaveS,我之所以问这个问题,是因为我一遍又一遍地想弄清楚到底出了什么问题,但是在几个小时的运气不佳之后,我想也许这里的某个人至少可以给我一个提示,让我指出正确的方向。另外,谢谢你的提示!好吧,你说:“当我去启动它的时候,它只是在那里呆了一分钟然后崩溃了。”——但这在代码中是什么?使用跟踪语句或断点,可以缩小范围。如果你知道它在第25-30行,而不是在整件事的某个地方,那么它就更容易找到。如果我们知道确切的位置,我们也可以更容易地提供帮助。欢迎来到StackOverflow。要提出好问题,请阅读。要进行调试,请阅读跟踪和调试,以便添加日志记录,如“步骤1确定”、“步骤2确定”。此外,还要学习设置断点和单步执行代码。仅仅因为没有语法错误并不意味着您的代码可以工作!最好学会自己调试东西,这样做你会学到更多。如果我们只是给你一个答案,你永远也学不会钓鱼:)(“给一个人一条鱼,你喂他一天…”)永远不要用“catch{}”@DaveS,我之所以问这个问题,是因为我一遍又一遍地想弄清楚到底出了什么问题,但是在几个小时的运气不佳之后,我想也许这里的某个人至少可以给我一个提示,让我指出正确的方向。另外,谢谢你的提示!好吧,你说:“当我去启动它的时候,它只是在那里呆了一分钟然后崩溃了。”——但这在代码中是什么?使用跟踪语句或断点,可以缩小范围。如果你知道它在第25-30行,而不是在整件事的某个地方,那么它就更容易找到。如果我们知道该去哪里找,我们也会更容易帮上忙。哇,我都没想到!我的记忆力很差。谢谢。哇,我都没想到!我的记忆力很差。谢谢