启动VB.NET表单作为单独的进程

时间:2011-03-28 05:33:38

标签: vb.net winforms process memory-management

我有VB.NET应用程序,其中一个表单中有IE控件,应用程序最初启动时内存大小消耗大约9 MB,但是当IE表单启动时,消耗的内存增加到27 MB,当该表单已关闭,内存仅减少3-4 MB,那么为什么分配给IEFrame的内存不会自动解除分配?有什么工作可以解决这个问题吗?如果可能的话,将表单作为单独的过程启动会很有帮助。

3 个答案:

答案 0 :(得分:2)

如果确保正确处理表单,垃圾收集器最终应释放该内存。不必在单独的进程中运行IE控件。 但是,如果您使用的是IE 7,则可能需要阅读有关内存泄漏的this question

答案 1 :(得分:1)

为什么不把这个表单放在一个单独的应用程序中,如果这是一个问题?有很多方法可以在两个应用程序之间传递任何数据。

答案 2 :(得分:0)

仍然分配的内存可能根本不是问题。如果计算机中有足够的可用内存,则.NET垃圾收集器将无法运行以进行清理。只有当您需要内存时,GC才会启动。

如果您想确保它是泄漏,您可以执行以下操作:

  1. 确保您没有以任何方式引用该表单。
  2. 调用GC.Collect()
  3. 查看是否仍然要求记忆
  4. 不要将GC.Collect()放在最终版本中;这只是为了确保你不是在追捕幽灵。