2012-08-01 3 views
0

В моем приложении C# используется .net WebBrowser. Мне нужно каждый раз закрывать дочерний контроль, и я заметил, что WebBrowser не получает доступ, и потребление ОЗУ значительно увеличивается с каждым вызовом (около 10 мб на каждую новую декларацию управления), а приложение иногда сбой происходит с OutOfMemoryException. Искал по форумам, но не смог найти чистого решения. Tried SetProcessWorkingSetSize (pHandle, -1, -1); но он не уменьшает виртуальную память, хотя использование ОЗУ будет сокращено, а это не чистый способ преодоления проблемы..Net Ошибка утечки памяти WebBrowser

Кажется, это проблемы существует уже много лет, для более подробной информации смотрите на эту тему How to get around the memory leak in the .NET Webbrowser control?

Есть предложения? Пробовал почти все, но пока не добился успеха.

Спасибо,

Abhinav

+0

Мне кажется, что ваш вопрос является точным дубликатом того, с которым вы связались. Вы используете этот контроль по-разному так, как описано в этом вопросе? – Justin

+0

Ну, этот поток ссылается на утечку памяти каждый вызов функции «Навигация», но для моего использования я должен каждый раз удалять WebBrowser и создавать новый экземпляр. Тем не менее я сталкиваюсь с утечкой памяти. – abhinavp

+0

Возможный дубликат [Как обойти утечку памяти в элементе управления .NET Webbrowser?] (Http://stackoverflow.com/questions/8302933/how-to-get-around-the-memory-leak-in-the -сетью-WebBrowser-контроль) –

ответ

1

Я не знаю, является ли похож на мой вашей ситуации, но я потратил три дня для этой странной проблемы. Мое приложение выполняло поиск на веб-странице, и мой код был таким;

1.Open веб-страница
для (1000 раз)
{
2.Write ввода и нажмите кнопку поиска.
3.Проверьте результат.
}

Как вы видите, моя программа открывает веб-страницу и делает повторен searches.Here открытия страницы (navigaiton) происходит только один раз. Потребление памяти в моей программе постоянно возрастало даже выше 1 ГБ! Затем я попытался переместить навигацию внутри цикла.

для (1000 раз)
{
1.Open веб-страницы
2.Write ввода и нажмите кнопку Seach.
3.Проверьте результат.
}

Я точно не знаю причины, но повторное использование одной и той же страницы в течение долгого времени было причиной моей проблемы. Я надеюсь, что это помогает.

Смежные вопросы