2012-08-01 47 views
0

我的c#应用程序使用.net WebBrowser。我需要每次关闭子控件,并且我注意到WebBrowser没有被丢弃,并且随着每次调用(每次新控件声明大约10 MB),RAM消耗会大量增加,并且应用程序在某段时间内因OutOfMemoryException而崩溃。在论坛上搜索,但找不到干净的解决方案。 已尝试SetProcessWorkingSetSize(pHandle,-1,-1);但它不会减少虚拟内存,尽管RAM的使用将会减少,并不是一种克服问题的干净方式。.Net WebBrowser控制内存泄漏

似乎存在多年以来,为更多的详细看这个线程How to get around the memory leak in the .NET Webbrowser control?

任何建议这个问题?尝试几乎一切,但没有成功。

感谢,

阿比纳夫

+0

它在我看来像你的问题是你已经链接的一个确切的副本。您是否按照该问题描述的方式使用此控件? – Justin 2012-08-01 16:29:02

+0

那么线程是指内存泄漏每个“Navigate”函数调用,但对于我的用例,我需要每次都处理WebBrowser并创建一个新实例。我仍然面临内存泄漏。 – abhinavp 2012-08-01 16:58:04

+0

[如何解决.NET Web浏览器控件中的内存泄漏?](http://stackoverflow.com/questions/8302933/how-to-get-around-the-memory-leak-in-the -net-web浏览器控制) – 2012-08-01 17:47:13

回答

1

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

1.Open网页
为(1000次)
{
2.Write输入,然后点击搜索按钮。
3.检查结果。
}

正如你看到我的程序打开网页,使得重复searches.Here打开的页面(导览树状图)发生一次。即使在1 GB以上,我的程序内存消耗也在不断增加!然后我试着把导航放在它工作的循环中。

为(1000次)
{
1.Open网页
2.Write输入,然后点击按钮SEACH。
3.检查结果。
}

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