Freigeben über


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.

Prozess 1

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 CoreWebView2Environmenterstellen, 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.

Prozess 2

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 CoreWebView2von , 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 OpenTaskManagerWindowBrowsertask-Manager zu öffnen.

Alle Prozesse, die dem Browserprozess Ihrer WebView2 zugeordnet sind, werden angezeigt, einschließlich der zugehörigen Zwecke.

Siehe auch