Prozessmodell für WebView2-Apps
Unterstützte Plattformen: Win32, Windows Forms, WinUI, WPF.
Die WebView2-Runtime verwendet dasselbe Prozessmodell wie der Microsoft Edge-Browser. Dieses Browserprozessmodell wird unter Browserarchitektur in Inside look at modern web browser (Teil 1) beschrieben.
Prozesse in der WebView2-Runtime
Eine WebView2-Prozessgruppe ist eine Sammlung von WebView2-Runtimeprozessen. Eine WebView2-Prozessgruppe umfasst Folgendes:
- Ein einzelner Browserprozess.
- Mindestens ein Rendererprozess.
- Andere Hilfsprozesse, z. B. der GPU-Prozess und der Audiodienstprozess.
Die Anzahl und das Vorhandensein von Prozessen in einer WebView2-Prozessgruppe kann sich ändern, wenn eine WebView2-Anwendung WebView2-Features verwendet. (Es gibt jedoch nur einen einzelnen, spezifischen Browserprozess in einer WebView2-Prozessgruppe.) Wenn Sie beispielsweise eine neue WebView2-instance aus demselben CoreWebView2Environment
erstellen, jedoch mit einer anderen Domäne in der -Eigenschaft, wird in der Source
Regel ein neuer Rendererprozess gestartet.
Die Anzahl der Rendererprozesse kann basierend auf den folgenden Bedingungen variieren:
Verwenden des Features "Websiteisolation " in der WebView2-Runtime. Weitere Informationen finden Sie unter Pro-Frame-Rendererprozesse – Standortisolation.
Die Anzahl unterschiedlicher getrennter Ursprünge, die in Instanzen von WebView2 gerendert werden, die denselben Benutzerdatenordner verwenden.
Die Logik, die steuert, wann diese zusätzlichen Prozesse erstellt werden, hängt von der Chromium Architektur ab und liegt außerhalb des Bereichs der WebView2-Runtime.
WebView2 Runtime-Prozesse und der Benutzerdatenordner
Alle Prozesse in einer WebView2 Runtime-Prozesssammlung sind an den Browserprozess gebunden, der wiederum einem einzelnen Benutzerdatenordner zugeordnet ist. Wenn eine Anwendung mehrere Benutzerdatenordner verwendet, wird für jeden dieser Benutzerdatenordner eine Sammlung von WebView2 Runtime-Prozessen erstellt.
Ein Benutzerdatenordner kann von mehreren Anwendungen freigegeben werden. Berücksichtigen Sie jedoch unbedingt die Auswirkungen auf die Leistung und Verwaltung, wie unter Verwalten von Benutzerdatenordnern beschrieben.
Um mehrere Benutzerdatenordner verwenden zu können, muss eine WebView2-Anwendung unterschiedliche CoreWebView2Environment
Objekte erstellen. Ein WebView2
instance wird für einen bestimmten Benutzerdatenordner über das konfigurierte CoreWebView2Environment
Objekt erstellt. Jedes CoreWebView2Environment
Objekt muss mit einem anderen Wert des Benutzerdatenordners konfiguriert werden.
Wenn die erste WebView2
instance für einen bestimmten Benutzerdatenordner erstellt wird, wird der Browserprozess für die WebView2 Runtime-Verarbeitungssammlung gestartet, die diesem Benutzerdatenordner zugeordnet ist. Alle zusätzlichen Prozesse werden während der Lebensdauer dieses Browserprozesses verwaltet.
Stellt CoreWebView2Environment
einen Benutzerdatenordner und die Auflistung der zugeordneten Prozesse dar. Ein bestimmter Rendererprozess ist keinem einzelnen CoreWebView2
instance zugeordnet, da der Rendererprozess Frames in mehreren CoreWebView2
Instanzen bereitstellen kann, die denselben Benutzerdatenordner verwenden, je nach Websiteisolation. Weitere Informationen finden Sie unter Pro-Frame-Rendererprozesse – Standortisolation.
Mehrere Umgebungsobjekte
Wenn Sie mehrere CoreWebView2Environment
Objekte erstellen, die auf die gleiche Weise konfiguriert sind (einschließlich der Freigabe desselben Benutzerdatenordners), stellen sie denselben Benutzerdatenordner und die gleiche zugeordnete Sammlung von Prozessen dar. Verwenden Sie eines dieser CoreWebView2Environment
Objekte, um ein CoreWebView2
mit dem einen freigegebenen Benutzerdatenordner und der zugehörigen Sammlung von Prozessen zu erstellen.
Wenn Sie versuchen, einen CoreWebView2Environment
mithilfe eines Benutzerdatenordners zu erstellen, den ein anderer CoreWebView2Environment
bereits verwendet, und Sie die beiden CoreWebView2Environment
Objekte nicht gleich konfigurieren, z. B. wenn sie mit unterschiedlichen CoreWebView2EnvironmentOptions.Language
Werten erstellt wurden, kann das zweite CoreWebView2Environment
Objekt nicht erstellen WebView2
. Dies gilt für CoreWebView2Environment
Objekte, die sich im gleichen Prozess oder in verschiedenen Prozessen befinden.
Verarbeiten von Prozessereignissen und Lebensdauer
Verwenden Sie das ProcessFailed
-Ereignis CoreWebView2
von , um auf Abstürze und Hängen in den Browser- und Rendererprozessen zu reagieren.
Verwenden Sie die Close
-Methode von CoreWebView2Controller
, um zugeordnete Browser- und Rendererprozesse sicher herunterzufahren.
Rufen Sie die -Methode auf, um den OpenTaskManagerWindow
Browsertask-Manager zu öffnen.
Alle Prozesse, die dem Browserprozess Ihrer WebView2 zugeordnet sind, werden angezeigt, einschließlich der zugehörigen Zwecke.
Siehe auch
- Sehen Sie sich den modernen Webbrowser (Teil 1) an: das Browserprozessmodell, das von der WebView2-Runtime und dem Microsoft Edge-Browser verwendet wird.
- Erste Schritte mit WebView2
- WebView2Samples-Repository : ein umfassendes Beispiel für WebView2-Funktionen.
- WebView2-API-Referenz