WebView2 應用程式的程式模型

支援的平臺:Win32、Windows Forms、WinUI、WPF。

WebView2 執行時間使用與 Microsoft Edge 瀏覽器相同的進程模型。 此瀏覽器程式模型的說明,請參 閱瀏覽器架構 內部 查看新式網頁瀏覽器 (第 1 部分)

WebView2 執行時間中的進程

WebView2 進程群組是 WebView2 執行時間進程的集合。 WebView2 處理群組包含下列專案:

  • 單一瀏覽器進程。
  • 一或多個轉譯器進程。
  • 其他協助程式程式,例如 GPU 進程和音訊服務程式。

程式 1

當 WebView2 應用程式使用 WebView2 功能時,WebView2 進程群組中的進程數目和存在狀態可能會變更。 (不過,WebView2 進程群組中只有一個特定的瀏覽器進程。) 例如,從相同的 CoreWebView2Environment 建立新的 WebView2 實例,但在 屬性中 Source 使用不同的網域,通常會啟動新的轉譯器程式。

轉譯器進程的數目可能會根據下列條件而有所不同:

  • 在 WebView2 執行時間中使用 網站隔離 功能。 請參閱 個別畫面轉譯器進程 - 網站隔離

  • 在使用相同使用者資料檔案夾的 WebView2 實例中轉譯的相異中斷連線原點數目。

控制何時建立這些額外進程的邏輯取決於Chromium架構,而且超出 WebView2 執行時間的範圍。

WebView2 執行時間進程和使用者資料檔案夾

WebView2 執行時間進程集合中的所有進程都會系結至瀏覽器進程,而瀏覽器進程會與單一使用者資料檔案夾相關聯。 如果應用程式使用多個使用者資料檔案夾,將會為每個使用者資料檔案夾建立 WebView2 執行時間進程的集合。

使用者資料檔案夾可由多個應用程式共用,但請務必考慮對效能和管理的影響,如 管理使用者資料檔案夾中所述。

程式 2

若要使用多個使用者資料檔案夾,WebView2 應用程式必須建立不同的 CoreWebView2Environment 物件。 實 WebView2 例是透過 CoreWebView2Environment 設定的 物件為指定的使用者資料檔案夾所建立。 每個 CoreWebView2Environment 物件都必須設定不同的使用者資料檔案夾值。

為指定的使用者資料檔案夾建立第 WebView2 一個實例時,將會啟動與該使用者資料檔案夾相關聯之 WebView2 執行時間進程集合的瀏覽器進程。 所有其他進程都會由該瀏覽器進程的存留期來管理。

代表 CoreWebView2Environment 使用者資料檔案夾,以及與其相關聯的進程集合。 指定的轉譯器進程不會與單 CoreWebView2 一實例相關聯,因為轉譯器進程可以在多個 CoreWebView2 使用相同使用者資料檔案夾的實例中提供框架,視網站隔離而定。 請參閱 個別畫面轉譯器進程 - 網站隔離

多個環境物件

如果您建立多個 CoreWebView2Environment 以相同方式設定的物件, (包括共用相同的使用者資料檔案夾) ,它們將代表相同的使用者資料檔案夾和相同的相關聯進程集合。 使用這些 CoreWebView2Environment 物件中的任何一個,建立具有一個 CoreWebView2 共用使用者資料檔案夾和相關聯之進程集合的 。

如果您嘗試使用另 CoreWebView2Environment 一個已使用的使用者資料檔案夾來建立 ,但未設定相同的兩 CoreWebView2EnvironmentCoreWebView2Environment 物件,例如,如果兩個物件是以不同的 CoreWebView2EnvironmentOptions.Language 值建立,則第二 CoreWebView2Environment 個物件將無法建立 WebView2 物件。 這適用于 CoreWebView2Environment 相同進程或不同進程中的物件。

處理進程事件和存留期

若要在瀏覽器和轉譯器進程中回應當機和停止回應,請使用 ProcessFailed 的事件 CoreWebView2

若要安全地關閉相關聯的瀏覽器和轉譯器進程,請使用 CloseCoreWebView2Controller 方法。

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

隨即會顯示與 WebView2 瀏覽器程式相關聯的所有進程,包括其相關聯的用途。

另請參閱