.NET桌面程序应用WebView2组件集成网页开发3 WebView2的进程模型
WebView2 运行时使用与 Microsoft Edge 浏览器相同的进程模型。
WebView2 进程组是 WebView2 运行时进程的集合。 WebView2 进程组包括以下内容:
- 单个浏览器进程。
- 一个或多个渲染器(呈现器)进程。
- 其他帮助程序进程,例如 GPU 进程和音频服务进程。

当WebView2应用程序使用WebView2功能时,WebView2进程组中进程的数量和存在可能会发生变化。(但是,WebView2进程组中只有一个特定的浏览器进程。)例如,从同一个 CoreWebView2Environment 市里创建新的WebView2实例,但在源属性中使用不同的域,通常会启动一个新的渲染器进程。
渲染器进程的数量可能会根据以下情况而变化:
- 在WebView2运行时中使用站点隔离功能。请参见每帧渲染器进程-站点隔离。
- 在使用同一用户数据文件夹的WebView2实例中呈现的不同断开连接的源的数量。
控制何时创建这些额外进程的逻辑取决于Chromium体系结构,并且超出了 WebView2 运行时的范围。
下面是在真实项目中测试的结果
(1)电脑关机,重新开机,未运行Edge浏览器,且未运行与WebView2相关的宿主应用程序。

后台进程中有5个默认Edge进程在运行

(2)运行“建筑工程施工图AI审查系统”,其中红色框内是使用WebView2组件加载的网页应用

任务管理器中,进程“Zjgsgts.Sczj”下启动了7个WebView2的子进程

其中某个第1个、第2个进程是渲染器进程,因为三维模型的渲染过程消耗的内存较多。第3、4、5、6、7是GPU进程或者其他帮助类程序进程。
而浏览器进程依然为5个,说明其中一个是 WebView2 进程组中的浏览器进程。

- runtimes 目录
- 结构如下图,包含一个WebView2运行时加载器组件 WebView2Loader.dll 。

- Zjgsgtsc.Sczj.exe.WebView2 目录
- 结构图下图,里面包含运行过程中其他的辅助配置信息以及缓存等信息

WebView2 运行时进程集合中的所有进程都绑定到浏览器进程,而浏览器进程又与单个用户数据文件夹相关联。 如果应用程序使用多个用户数据文件夹,将为每个用户数据文件夹创建 WebView2 运行时进程的集合。

用户数据文件夹可由多个应用程序共享,但请务必考虑对性能和管理的影响,如“管理用户数据”文件夹中所述。
若要使用多个用户数据文件夹,WebView2 应用程序需要创建不同的 CoreWebView2Environment 对象。 WebView2通过配置的对象为给定用户数据文件夹创建CoreWebView2Environment实例。 每个 CoreWebView2Environment 对象都需要使用不同的用户数据文件夹值进行配置。
为给定的用户数据文件夹创建第一个WebView2实例时,将启动与该用户数据文件夹关联的WebView2运行时进程集合的浏览器进程。所有其他进程都将在该浏览器进程的生命周期内进行管理。
CoreWebView2Environment代表一个用户数据文件夹及其相关进程的集合。给定的渲染器进程与单个CoreWebView2实例不关联,因为渲染器进程可以为使用同一用户数据文件夹的多个CoreWebView2实例中的帧提供服务,具体取决于网站隔离。请参见每帧渲染器进程-站点隔离
若要对浏览器和渲染器进程中的崩溃和挂起做出反应,请使用 CoreWebView2 的 ProcessFailed 事件。
若要安全地关闭相关的浏览器和渲染器进程,请使用 CoreWebView2Controller 的 Close 方法。
若要打开浏览器任务管理器,请调用 OpenTaskManagerWindows 方法。
其他事件,请参考 WebView2 API。
.NET桌面程序应用WebView2组件集成网页开发3 WebView2的进程模型的更多相关文章
- .NET桌面程序应用WebView2组件集成网页开发4 WebView2的线程模型
系列目录 [已更新最新开发文章,点击查看详细] WebView2控件基于组件对象模型(COM),必须在单线程单元(STA)线程上运行. 线程安全 WebView2必须在使用消息泵的UI线程上创 ...
- 组件化网页开发 / 步骤一 · 4-4 匹配HTML标签
组件化网页开发 / 步骤一 · 4-4 匹配HTML标签
- 组件化网页开发 / 步骤二 · 2-11 jquery的ajax方法 以及下一章跨域没懂
1,根据2-11课程老师的提示,自己封装 $.ajax 2,第三章,跨域,没看懂
- .NET桌面程序集成Web网页开发的多种解决方案
系列目录 [已更新最新开发文章,点击查看详细] B/S架构的Web程序几乎占据了应用软件的绝大多数市场,但是C/S架构的WinForm.WPF客户端程序依然具有很实用的价值,如设计类软件 Au ...
- 网页程序 vs 桌面程序
网页程序 vs 桌面程序 阅读: 评论: 作者:Rybby 日期: 来源:rybby.com 所谓的网页程序就是指以网页作为程序的操作界面,通过脚本语言“javascript”或其它客户端语言 ...
- JRE“瘦身”&桌面程序集成JRE
项目是一个桌面程序,程序文件不大,但运行jre有198 MB,因此需要"瘦身". jre包含bin.lib两部分,分别为93.6 MB.104 MB. 1.精简bin 运行桌面程序 ...
- 桌面程序的其他实现方式----使用WPF窗体展现网页
需求 在WPF应用程序中,需要使用到WEB项目的资源,第一时间想到的就是在WPF窗口中,展现WEB项目中的页面,这样子有两点好处:一是,实现简单,不需要在WPF应用程序中实现UI布局和数据绑定:二是, ...
- DELPHI编写服务程序总结(在系统服务和桌面程序之间共享内存,在服务中使用COM组件)
DELPHI编写服务程序总结 一.服务程序和桌面程序的区别 Windows 2000/XP/2003等支持一种叫做“系统服务程序”的进程,系统服务和桌面程序的区别是:系统服务不用登陆系统即可运行:系统 ...
- 放弃 Electron,拥抱 WebView2!JavaScript 快速开发独立 EXE 程序
Electron 不错,但也不是完美的. Electron 带来了很多优秀的桌面软件,但并不一定总是适合我们的需求. 多个选择总是好事! 我使用 Electron 遇到的一些麻烦 1.Electron ...
随机推荐
- 【死磕NIO】— 探索 SocketChannel 的核心原理
大家好,我是大明哥,一个专注于[死磕 Java]系列创作的程序员. [死磕 Java ]系列为作者「chenssy」 倾情打造的 Java 系列文章,深入分析 Java 相关技术核心原理及源码. 死磕 ...
- ShellExecuteA加载exe文件指定工作目录找不到文件的问题
使用ShellExecuteA调用exe文件时,指定工作目录需要注意 函数原型为: HINSTANCE ShellExecuteA( HWND hwnd, LPCTSTR lpOperation, L ...
- @Autowired 注解?
@Autowired 注解提供了更细粒度的控制,包括在何处以及如何完成自动装配.它的用法和@Required一样,修饰setter方法.构造器.属性或者具有任意名称和/或多个参数的PN方法.
- elasticsearch 了解多少,说说你们公司 es 的集群架构,索 引数据大小,分片有多少,以及一些调优手段 ?
面试官:想了解应聘者之前公司接触的 ES 使用场景.规模,有没有做过比较大 规模的索引设计.规划.调优. 解答: 如实结合自己的实践场景回答即可. 比如:ES 集群架构 13 个节点,索引根据通道不同 ...
- Spring MVC的异常处理 ?
可以将异常抛给Spring框架,由Spring框架来处理:我们只需要配置简单的异常处理器,在异常处理器中添视图页面即可.
- 什么情况下使用break关键字?什么情况下使用Continue关键字
return用于返回一个值给函数,或者直接使用,结束函数:break用于结束循环,即从循环中退出:continue用于结束当次循环,直接进行下次循环.
- osi七层模型&tcp/udp
1.TCP/UDP协议 1.1 TCP协议 可靠,速度慢,全双工通信 建立连接三次握手,断开连接四次挥手 建立起链接之后,发送每条消息都有回执,为了保证数据的完整性,还有重传机制 数据传输:有收必有发 ...
- BUG战斗史 —— 日期格式与字符串之间的转换
说在前面 最近在公司实习,接触了一个中小型的后台管理系统,不得不说,项目的目录结构比我平时做的"课程设计"要来得复杂,于是我先去看了Github上一些后台管理系统的模板项目 在gu ...
- 6_稳定性_李雅普诺夫_Lyapunov
李雅普诺夫方法参考
- Hive启动报错:java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument
报错详细: Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preco ...