Chromiumwebbrowser использует высокую компьютерную память.
когда я перехожу с одной страницы на другую, это время показывает высокую загрузку памяти моего компьютера.
использование данных ChromiumWebBrowser с CefSharp и перенос 1 url страницы на другую url страницу более чем в 20 раз это время показывает высокое использование памяти моего компьютера
Изображение
MemoryUsage.png - Google Диск[^]
Что я уже пробовал:
время загрузки страницы
public void WebURLBind() { BtnGo.Enabled = false; try { WebsitePath = ConfigurationManager.AppSettings["WebsiteURL"]; datecurrent = dateTimePicker1.Value; datetotalsecond = ConvertToTimestamp(datecurrent); settings.CachePath = AppDomain.CurrentDomain.BaseDirectory + "cache"; settings.CefCommandLineArgs.Add("disable-application-cache", "1"); settings.CefCommandLineArgs.Add("disable-session-storage", "1"); Cef.Initialize(settings); Cef.GetGlobalCookieManager().DeleteCookies("", ""); browser = new ChromiumWebBrowser(WebsitePath); this.panel1.Controls.Add(browser); browser.LoadingStateChanged += browser_FrameLoadEnd; browser.Dock = DockStyle.Fill; browser.LoadingStateChanged += ChromiumBrowser_IsLoadingChangedAsync; } catch (Exception ex) { BtnGo.Enabled = true; } }
private void browser_FrameLoadEnd(object sender, LoadingStateChangedEventArgs e) { Thread.Sleep(1000); browser.ExecuteScriptAsync("PopulateWeeklyEvents(" + datetotalsecond + ",'',true)"); Thread.Sleep(1000); browser.ExecuteScriptAsync("$('#earnings_rel_data_all_table_info').parent('div').find('div.dataTables_length').find('label').find('select').val(-1);"); browser.ExecuteScriptAsync("$('#earnings_rel_data_all_table_info').parent('div').find('div.dataTables_length').find('label').find('select').trigger('change');"); }
public async void ChromiumBrowser_IsLoadingChangedAsync(object sender, CefSharp.LoadingStateChangedEventArgs e) { if (!e.IsLoading) { if (IsAactiveForm) { await StartMethodAsync(); } } }
<pre> public async Task StartMethodAsync() { result = await this.browser.GetSourceAsync(); result = result.Trim(); doc.LoadHtml(result); Boolean isBreaked = false; foreach (var nodesection in doc.DocumentNode.SelectNodes("//section[@id='events_list']")) { foreach (var SecNodes in nodesection.ChildNodes) { if (SecNodes.Name == "ul") { foreach (var cnode in SecNodes.ChildNodes) { test++; if (cnode.Name == "li" && cnode.HasClass("ui-tabs-active")) { csvFileName = cnode.InnerText; Thread.Sleep(1000 * 3); getTabData(csvFileName); isBreaked = true; break; } } } if (isBreaked) break; } if (isBreaked) break; } if (IsAactiveForm) { await CallMethod(); } }