Vb.net 内存泄漏导致OutOfMemory。由于增加句柄限制而导致异常

Vb.net 内存泄漏导致OutOfMemory。由于增加句柄限制而导致异常,vb.net,winforms,Vb.net,Winforms,我的申请表格太多了。我在Windows7上运行它,并开始观察任务管理器中的句柄。句柄开始增加,当到达 限制为7000,应用程序崩溃。然后我卸载windows updateKB2670838。在此过程中,即使我同时打开10个表单,句柄的限制也不会超过800。然后我就跑 我在Windows8上的应用程序。同样的问题也会发生。然后我卸载相同的更新。但这对我的申请没有影响,即使只开两张表格也没有限制 句柄数增加到7000,应用程序崩溃 建议任何解决方案,使我的应用程序能够像windows 7一样在win

我的申请表格太多了。我在Windows7上运行它,并开始观察任务管理器中的句柄。句柄开始增加,当到达 限制为7000,应用程序崩溃。然后我卸载windows updateKB2670838。在此过程中,即使我同时打开10个表单,句柄的限制也不会超过800。然后我就跑 我在Windows8上的应用程序。同样的问题也会发生。然后我卸载相同的更新。但这对我的申请没有影响,即使只开两张表格也没有限制 句柄数增加到7000,应用程序崩溃

建议任何解决方案,使我的应用程序能够像windows 7一样在windows 8上正常运行

谢谢

实际上,我的应用程序包含的表单太多,而一个表单包含的组件太多。在InitializeComponent()方法中,我初始化所有组件,并在close事件表单中释放所有组件,即MyBase.dispose()。在初始化时,组件占用大约600到700个句柄,在dispose时,组件只释放100个句柄,通过反复打开表单,句柄的范围超过7000,应用程序崩溃


正如我之前告诉过你的,这种情况发生在windows 8中,而不是windows 7中,因为我已经卸载了错误的更新KB2670838,但当我在windows 8中卸载此更新时,对它没有影响,同样的情况也会发生。

用户不可能一次与10个表单交互,你的应用也不可能需要800个句柄(顺便说一句,处理什么)已分配/打开。您可能希望查看应用程序正在做什么,或者更可能是如何做的。是否有绘图代码?请确保您处理了图像、字体、笔和画笔等。如果有可能,请从您的程序中删除可能重复的部分,如果您愿意,请进行注释。查看问题何时停止。开始将这些部分放回。常规troubleshooting程序,试试看!