我的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?
有什么建议吗?几乎尝试了一切,但还没有成功。
谢谢,
阿比纳夫
答案 0 :(得分:1)
我不知道你的情况是否与我的相似,但我已经浪费了三天才能解决这个奇怪的问题。 我的应用程序在网页上执行搜索,我的代码就是这样;
1.打开网页
为(1000次)
{
2.写入输入并单击搜索按钮
3.检查结果。
}
当你看到我的程序打开网页并重复搜索时。打开页面(navigaiton)只发生一次。我的程序的内存消耗不断增加甚至超过1 GB!然后我尝试将导航放在它工作的循环中。
(1000次)
{
1.打开网页
2.写入输入并单击搜索按钮
3.检查结果。
}
我完全不知道原因,但长时间重复使用同一页面是我的问题的原因。我希望它有所帮助。