内存泄漏导致OutOfMemory.Exception,因为增加了句柄的限制

时间:2014-03-20 21:16:00

标签: vb.net winforms

我的应用程序包含太多表单。我在Windows 7上运行它并开始观察任务管理器中的句柄。手柄开始增加,当它到达时 限制为7000,应用程序崩溃。然后我卸载Windows更新 KB2670838 。在这样做时,即使我同时打开10个表单,句柄的限制也不会超过800。然后我跑了 我的应用程序在Windows 8.同样的问题发生。然后我卸载相同的更新。但是对我的应用程序没有任何影响,甚至只打开两种形式的限制 句柄增加到7000,应用程序崩溃。

建议任何解决方案,以便我的应用程序在Windows 8上正常运行,就像Windows 7一样。

三江源。

实际上我的应用程序包含太多表单,而且一个表单包含很多组件。在InitializeComponent()方法中,我初始化所有组件,并在关闭事件的形式我处置所有组件,即MyBase.dispose()。在初始化时,组件占用大约600到700个手柄,并且在处理时,组件仅释放100个手柄,并且通过一次又一次打开表单,手柄跨越7000的范围并且应用程序崩溃。

正如我之前告诉过你的,这个场景发生在Windows 8中,但不是在Windows 7中,因为我已经卸载了错误更新KB2670838,但是当我在Windows 8中卸载此更新时,对它没有任何影响,并且会出现相同的情况。 / p>

0 个答案:

没有答案