问题:当CefSharp放在List里,然后用了Remove移除,CefSharp是否还存在。

我将Cefsharp做成UserControl控件,然后在Main页面里采用List<UserControl>的方式做一个浏览器的标签页如下图

然后我右击关闭的时候,习惯性的直接Remove掉,而这时问题就出现了。Cef并没有被释放掉,依旧存在于后台。(注:发现这个问题也是挺凑巧的,那时刚好在试验CefSharp播放Mp4,然后我Remove掉页面的时候,之前页面居然还在播放声音,这才引起了我的注意。)

解决办法就是:在关闭的时候调用一下browser.GetBrowser().CloseBrowser(true);。当然这里面还有一个问题,当你开了多个标签的时候你关掉了某一个会突然出现前面的页面好像也一起释放掉了,页面直接空白。

经过排查得知当你选择去让CefSharp不弹出新窗口的是时候会去写ILifeSpanHandler。如果在DoClose这个方法里选择去return false 。那么你就会遇到我上面遇到问题。那么随之而来的又有一个新问题。就是当你选择去return true时。如果你有用上DevTool进行页面调试的话,你会发现当DevTool打开后再点关闭它会关不掉。因此最终可以采用以下写法如图示

解释下,第一步:判断DevTool是否已经打开。如果已经打开并且当前要关闭的页面属于弹窗(因为DevTool属于弹窗)时选择去return false。其他时候关闭页面时就去return true。这样一来就可以解决这些问题。

(可能写的文章对于大佬来说鸡肋,但这却是我开发过程中遇到的点问题。只希望给后来者少走点坑。毕竟这个问题我在百度上没找到解答,所以就写下来。)

文章不易,如有错误,请指出。转载请标明链接

记一次开发CefSharp做浏览器时关闭页面上时未释放遇到的小问题的更多相关文章

  1. 记一次开发CefSharp做浏览器时Facebook广告页支付方式绑定不上Paypal问题

    问题:用CefSharp做浏览器开发.在做Facebook广告页面绑定Paypal支付方式时出现了绑定不上的问题. 让我们来还原问题的步骤: 第一步登录Facebook. 第二步进入广告绑卡页面选择P ...

  2. 记一次开发CefSharp做浏览器时Shopify绑定不上Paypal问题

    问题:CefSharp做浏览器时Shopify绑定不上Paypal. shopify绑定Paypal的流程大概是如下图所示 步骤1 步骤2 步骤3 步骤4 出现问题大概是在绑定最后一步,并没有如愿的返 ...

  3. ios系统微信浏览器、safari浏览器中h5页面上拉下滑导致悬浮层脱离窗口的解决方法

    一. 运行环境: iphone所有机型的qq浏览器,safari浏览器,微信内置浏览器(qq浏览器内核)等. 二. 异常现象: 1. 大幅度上下滑动h5页面,然后停止滑动,有时候会影响到页面滚动,如局 ...

  4. Microsoft Dynamics CRM 解决数据大于5000时,页面上只能导出5000+数据。

    页面显示: update [MSCRM_CONFIG].[dbo].[DeploymentProperties] set IntColumn=10000 --调整成10000+   页面导出: 一.在 ...

  5. 简单记账本APP开发一

    在对Android的一些基础的知识有了一定了解,以及对于AndroidStudio的如何使用有了 一定的熟悉后,决定做一个简单的记账本APP 开发流程 1.记账本的页面 2.可以添加新的账目 (一)页 ...

  6. 多进程浏览器、多线程页面渲染与js的单线程

    线程与进程 说到单线程,就得从操作系统进程开始说起.在早期的操作系统中并没有线程的概念,进程是能拥有资源和独立运行的最小单位,也是程序执行的最小单位.任务调度采用的是时间片轮转的抢占式调度方式,而进程 ...

  7. WebVR大潮来袭时,前端开发能做些什么

    WebVR大潮来袭时,前端开发能做些什么?     WebVR即web + VR的体验方式,我们可以戴着头显享受沉浸式的网页,新的API标准让我们可以使用js语言来开发.本文将介绍如何快速开发一个We ...

  8. 分享:用 NDK C++做底层开发的Android 浏览器,纯免费,无广告

    分享:用 NDK C++做底层开发的Android 浏览器,纯免费,无广告 操作简单,傻瓜一看就会 无毒.无广告.无负作用,完全免费 下载地址1:http://awdjcfeizb.l33.yunpa ...

  9. 分享:Android浏览器,用NDK C++做底层开发的Android浏览器,纯免费,无广告

    分享:用 NDK C++做底层开发的Android 浏览器,纯免费,无广告 分享:用 NDK C++做底层开发的Android 浏览器,纯免费,无广告 操作简单,傻瓜一看就会 无毒.无广告.无负作用, ...

随机推荐

  1. java实现第四届蓝桥杯黄金连分数

    黄金连分数 题目描述 黄金分割数0.61803- 是个无理数,这个常数十分重要,在许多工程问题中会出现.有时需要把这个数字求得很精确. 对于某些精密工程,常数的精度很重要.也许你听说过哈勃太空望远镜, ...

  2. WPF样式学习第一天

    因为上班的公司要我用wpf写软件,刚毕业出来,学校也没教过wpf,只会winform,再加上wpf用winform的框架写法也能实现很多需求,但是就不能体现wpf的优点了,今天就先来学wpf的样式,因 ...

  3. 安装fail2ban,防止ssh爆破及cc攻击

    背景:之前写过shell脚本防止服务器ssh爆破,但是对于服务器的cpu占用较多,看来下资料安装fail2ban 可以有效控制ssh爆破 1:fail2ban 安装(环境:centos6  宝塔) y ...

  4. ubuntu安装ssh服务器

    1.安装 sudo apt-get install openssh-server 2.配置文件路径 / etc/ssh/sshd_config 3.操作 sudo /etc/init.d/ssh st ...

  5. Centos7上添加自定义服务文件并开机启动

    Ⅰ-1 写服务文件 [Unit]   ##服务的说明Description:描述服务After:描述服务类别 [Service]   ##服务运行参数的设置Type=forking是后台运行的形式Ex ...

  6. Kubernetes-subpath的使用

    一.什么是subpath 为了支持单一个pod多次使用同一个volume而设计,subpath翻译过来是子路径的意思,如果是数据卷挂载在容器,指的是存储卷目录的子路径,如果是配置项configMap/ ...

  7. Spark GraphX企业运用

    ========== Spark GraphX 概述 ==========1.Spark GraphX是什么?  (1)Spark GraphX 是 Spark 的一个模块,主要用于进行以图为核心的计 ...

  8. postman查看打印

    原文:https://www.jianshu.com/p/f165a99245e3 1.再postman中每个请求的 Pre-request Script和Tests中都可以写代码2.也可将值打印到C ...

  9. 写给大忙人的Redis主从复制,花费五分钟让你面试不尴尬

    相信很多小伙伴都已经配置过主从复制,但是对于redis主从复制的工作流程和常见问题很多都没有深入的了解.咔咔这次用时俩天时间给大家整理一份redis主从复制的全部知识点. 本文实现所需环境 cento ...

  10. Redis 数据结构 之 SDS

    SDS(simple dynamic string),简单动态字符串.s同时它被称为 Hacking String.hack 的地方就在 sds 保存了字符串的长度以及剩余空间.sds 的实现在 sd ...