2012-08-01 66 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.檢查結果。
}

我完全不知道原因,但長時間重複使用相同的頁面是我的問題的原因。我希望它有幫助。