【问题标题】:.Net WebBrowser Control memory leak.Net WebBrowser 控制内存泄漏
【发布时间】:2012-07-30 12:22:30
【问题描述】:

我的 c# 应用程序使用 .net WebBrowser。我每次都需要关闭子控件,并且我注意到 WebBrowser 没有得到处理,并且每次调用时 RAM 消耗都在大幅增加(每个新控件声明大约 10 mb),并且应用程序有时会因 OutOfMemoryException 而崩溃。搜索了论坛,但找不到干净的解决方案。 试过 SetProcessWorkingSetSize(pHandle, -1, -1);但它不会减少虚拟内存,尽管 RAM 的使用会减少,而且它不是解决问题的干净方法。

似乎这个问题多年来一直存在,有关更多详细信息,请查看此线程How to get around the memory leak in the .NET Webbrowser control?

有什么建议吗?几乎尝试了所有方法,但还没有成功。

谢谢,

阿比纳夫

【问题讨论】:

  • 在我看来,您的问题与您链接的问题完全相同。您使用此控件的方式与该问题中描述的方式不同吗?
  • 嗯,线程是指内存泄漏和每个“导航”函数调用,但对于我的用例,我需要每次都处理 WebBrowser 并创建一个新实例。我仍然面临内存泄漏。

标签: c# .net memory memory-leaks webbrowser-control


【解决方案1】:

我不知道你的情况是否和我的相似,但我已经为那个奇怪的问题浪费了三天时间。 我的应用程序正在网页上执行搜索,我的代码就是这样;

1.打开网页
为(1000 次)
{
2.Write输入并点击搜索按钮。
3.检查结果。
}

如您所见,我的程序打开网页并进行重复搜索。此处打开页面(导航)仅发生一次。即使超过 1 GB,我的程序的内存消耗也在不断增加!然后我尝试将导航放在它工作的循环中。

为(1000 次)
{
1.打开网页
2.Write输入并点击seach按钮。
3.检查结果。
}

我完全不知道原因,但长时间重复使用同一页面是我的问题的原因。希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2013-12-29
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 2013-05-12
    • 2012-11-16
    • 1970-01-01
    相关资源
    最近更新 更多