共用方式為


WebView2 應用程式的流程模型

支援平台:Win32、Windows Forms、WinUI、WPF。

WebView2 執行環境使用與 Microsoft Edge 瀏覽器相同的程序模型。 此瀏覽器流程模型在瀏覽器 架構 中有所描述,內容為《 現代網頁瀏覽器 (第一部分)

WebView2 執行時中的程序

WebView2 程序群組是一組 WebView2 執行時程序的集合。 WebView2 的程序群組包含以下內容:

  • 一個瀏覽器的流程。
  • 一個或多個渲染器處理程序。
  • 其他輔助程序,如 GPU 程序與音訊服務程序。

程序一

隨著 WebView2 應用程式使用 WebView2 功能,程序群組中的程序數量與存在程度可能會改變。 (然而,WebView2 程序群組中只有一個特定的瀏覽器程序。) 例如,從同 CoreWebView2Environment一個 建立一個新的 WebView2 實例,但屬性中有不同的網域 Source ,通常會啟動新的渲染程序。

渲染程序的數量會根據以下條件而有所不同:

  • 在 WebView2 執行時使用 站點隔離 功能。 請參見 每幀渲染器流程 - 站點隔離

  • 在使用相同使用者資料資料夾的 WebView2 實例中,渲染出的多個不同且不相連的起點數量。

控制這些額外程序何時建立的邏輯依賴於 Chromium 架構,超出 WebView2 執行環境的範圍。

WebView2 執行時程序與使用者資料資料夾

WebView2 執行時程序集合中的所有程序都綁定於瀏覽器程序,而瀏覽器程序又與單一使用者資料資料夾相關聯。 若應用程式使用多個使用者資料資料夾,則會為每個使用者資料資料夾建立一組 WebView2 執行時程序。

使用者資料資料夾可以被多個應用程式共用,但請務必考慮其對效能與管理的影響,詳見「管理使用者資料資料夾」。

程序二

為了使用多個使用者資料資料夾,WebView2 應用程式需要建立不同的 CoreWebView2Environment 物件。 透過已設定CoreWebView2Environment的物件,為特定使用者資料資料夾建立實WebView2例。 每個 CoreWebView2Environment 物件都需要設定不同的使用者資料資料夾值。

當為特定使用者資料資料夾建立第一個 WebView2 實例時,該資料夾所關聯的 WebView2 執行時程序集合會啟動瀏覽器程序。 所有額外的程序將依該瀏覽器程序的生命週期來管理。

代表 CoreWebView2Environment 使用者資料資料夾及其相關的程序集合。 特定的渲染程序不會與單一 CoreWebView2 實例相關聯,因為該渲染程序可以在多個 CoreWebView2 使用相同使用者資料資料夾的實例中提供框架,視網站隔離而定。 請參見 每幀渲染器流程 - 站點隔離

多重環境物件

如果你建立多個 CoreWebView2Environment 設定方式相同 (包含共用相同使用者資料資料夾) 的物件,它們會代表相同的使用者資料資料夾及相同的相關程序集合。 使用這些 CoreWebView2Environment 物件中的任意一個,建立 CoreWebView2 一個共用的使用者資料資料夾及相關程序集合。

如果你嘗試用另一個CoreWebView2Environment使用者資料資料夾建立CoreWebView2Environment一個資料夾,而另一個資料夾已經在用這個資料夾,且你沒有把兩個CoreWebView2Environment物件設定一樣,例如它們是用不同CoreWebView2EnvironmentOptions.Language值建立的,那麼第二個CoreWebView2Environment資料夾就會無法建立WebView2物件。 這對於 CoreWebView2Environment 處於相同流程或不同流程的物件都成立。

處理流程事件與壽命

要回應瀏覽器和渲染程序中的當機與當機,請使用 ProcessFailed 事件 CoreWebView2

若要安全關閉相關的瀏覽器與渲染程序,請使用CloseCoreWebView2Controller

要開啟 瀏覽器工作管理員,請呼叫該 OpenTaskManagerWindow 方法。

所有與 WebView2 瀏覽器程序相關的程序都會顯示,包括它們相關的用途。

另請參閱