Я думаю, что этот вопрос давно остался без ответа.Так много тем с одинаковым вопросом, но не окончательным ответом.
Я нашел способ обойти эту проблему и хотел бы поделиться со всеми вами, кто все еще сталкивается с этой проблемой.
step1: создать новую форму скажем form2 и добавить элемент управления веб-браузерав теме.Шаг 2: В форме 1, где у вас есть элемент управления веб-браузера, просто удалите его.Шаг 3: Теперь перейдите к Form2 и сделайте модификатор доступа для этого элемента управления веб-браузера общедоступным, чтобы к нему можно было получить доступ в Form1. Шаг 4. Создайте панель в form1 и создайте объект form2 и добавьте его в панель.Form2 frm = новая Form2 ();frm.TopLevel = false;frm.Show ();panel1.Controls.Add (FRM);шаг 5: вызывать приведенный ниже код через равные промежутки времени frm.Controls.Remove (frm.webBrowser1);frm.Dispose ();
Вот и все.Теперь, когда вы запустите его, вы увидите, что элемент управления веб-браузера загружен, и он будет регулярно удаляться, и приложение больше не будет зависать.
Вы можете добавить приведенный ниже код, чтобы сделать его более эффективным.
IntPtr pHandle = GetCurrentProcess();
SetProcessWorkingSetSize(pHandle, -1, -1);
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();