有关Cefsharp运行过程的一般问题

时间:2019-06-06 13:10:22

标签: c# .net cefsharp cefsharp.offscreen

我正在将我的应用程序从CefSharp 53升级到当前的CefSharp73。(我知道,超级落后)。我专门使用CefSharp.OffScreen.ChromiumWebBrowser,我注意到的一件事是,现在有两个CefSharp.BrowserSubprocess.exe进程启动(在Windows 10,x64上)。调用dispose时,两个进程之一关闭,另一个进程打开。

这是预期的吗?在53版中,它仅启动了一个进程并在调用dispose时将其关闭。如果可以帮助我使用cefsharp创建屏幕截图,那么在页面加载后,我将调用ScreenShotOrNull()。

编辑:一些代码上下文:

我正在Windows服务启动时启动cefsharp:

static void Main(string[] args)
{
        var settings = var settings = new CefSettings
        {
            LogSeverity = LogSeverity.Warning
        };
        settings.CefCommandLineArgs.Add("disable-gpu", "1");
        settings.CefCommandLineArgs.Add("disable-gpu-vsync", "1");
        CefSharpSettings.LegacyJavascriptBindingEnabled = true;
        Cef.Initialize(settings);
 }

这时没有实例化浏览器,因此没有进程。但是,在需要的时候我会打电话给

 using (_browser = new ChromiumWebBrowser(url) { Size = new 
 Size(width, 720) })
 {
      // At this point, there are two processes
      // Code waiting for browser to finish loading
      using(var bitmap = _browser.ScreenshotOrNull())
      {
          // Code for saving
      }
 }

完成后,只有一个进程,带有以下命令行参数:

--type=gpu-process
--field-trial-handle=2968,16124456567459120137,1231289933363561479,131072
--disable-features=VizDisplayCompositor
--no-sandbox
--disable-gpu-vsync=1
--log-file="log.txt"
--log-severity=warning
--lang=en-US    --cefsharpexitsub
--gpu-preferences=AGiantStringThatWontDisplayHereCorrectly
--use-gl=swiftshader-webgl
--log-file="debug.log"
--service-request-channel-token=13307567583052100413
--mojo-platform-channel-handle=3016
/prefetch:2
 --host-process-id=7444  10428

0 个答案:

没有答案