Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#内存管理_C#_.net_Memory_Cefsharp - Fatal编程技术网

C#内存管理

C#内存管理,c#,.net,memory,cefsharp,C#,.net,Memory,Cefsharp,我在我的C#Winform应用程序(.NET 4.5.2)中使用CefSharp Winforms(v57.0.0),它一直运行良好 由于我必须访问多个站点,CEF浏览器进程会消耗大量内存!我已经在文档和其他论坛中对此进行了研究,但没有得到满意的答案。。。到目前为止,最好的解决方案是重新启动程序 有没有办法通过CEF浏览器进程“清除”内存使用情况,而不重新启动我的程序 遵循Cef初始化代码: CefSettings settings = new CefSettings(); settings.C

我在我的C#Winform应用程序(.NET 4.5.2)中使用CefSharp Winforms(v57.0.0),它一直运行良好

由于我必须访问多个站点,CEF浏览器进程会消耗大量内存!我已经在文档和其他论坛中对此进行了研究,但没有得到满意的答案。。。到目前为止,最好的解决方案是重新启动程序

有没有办法通过CEF浏览器进程“清除”内存使用情况,而不重新启动我的程序

遵循Cef初始化代码:

CefSettings settings = new CefSettings();
settings.CachePath = Program.CACHE_PATH; // cache path
settings.IgnoreCertificateErrors = true;
settings.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36";
settings.PersistSessionCookies = false;
// Initialize cef with the provided settings
bool initialized = false;
string cefError = string.Empty;
try
{
   Thread.Sleep(1000);
   initialized = Cef.Initialize(settings, true, null);
}
catch (Exception ex)
{
   cefError = ex.InnerException == null ? ex.Message : ex.InnerException.InnerException == null ? ex.InnerException.Message : ex.InnerException.InnerException.Message;
}

if (!initialized)
{
  // ERROR! => FINISH PROGRAM
  // ...
  return;
}

// Cookies path
Cef.GetGlobalCookieManager().SetStoragePath(Program.COOKIES_PATH, false);

// Create a browser component
webBrowser = new ChromiumWebBrowser("about:blank");
webBrowser.Name = "WebBrowser";
webBrowser.TabIndex = 0;
webBrowser.BrowserSettings.ApplicationCache = CefState.Disabled;
webBrowser.BrowserSettings.FileAccessFromFileUrls = CefState.Enabled;
webBrowser.BrowserSettings.UniversalAccessFromFileUrls = CefState.Enabled;
webBrowser.BrowserSettings.ImageLoading = CefState.Disabled;
webBrowser.BrowserSettings.Javascript = CefState.Enabled;
webBrowser.BrowserSettings.WebSecurity = CefState.Disabled;
webBrowser.KeyboardHandler = new BrowserChrome.KeyboardHandler(); // prevent keyboard
webBrowser.JsDialogHandler = new BrowserChrome.JsHandler(); // prevent alerts

// Add to tab (tabBrowser is a TabPage)
tabBrowser.Controls.Add(webBrowser);

webBrowser.Dock = DockStyle.Fill;
程序结束的地方有以下代码:

 Cef.Shutdown();

正如amaitland提到的,CefSharp的57版中有一个bug。幸运的是,最近发布的63版解决了这个问题。

无法清除内存。Chromium版本57基于的版本中存在一个bug,请参阅