Modo de ejecución de WebView en Windows

Esta función específica de la plataforma establece el subproceso en el que un WebView aloja su contenido. Se consume en XAML estableciendo la propiedad enlazable WebView.ExecutionMode en un valor de enumeración WebViewExecutionMode:

<ContentPage ...
             xmlns:windows="clr-namespace:Xamarin.Forms.PlatformConfiguration.WindowsSpecific;assembly=Xamarin.Forms.Core">
    <StackLayout>
        <WebView ... windows:WebView.ExecutionMode="SeparateThread" />
        ...
    </StackLayout>
</ContentPage>

Como alternativa, se puede consumir desde C# mediante la API fluida:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.WindowsSpecific;
...

WebView webView = new Xamarin.Forms.WebView();
webView.On<Windows>().SetExecutionMode(WebViewExecutionMode.SeparateThread);

El método WebView.On<Windows> especifica que esta característica específica de la plataforma solo se ejecutará en la Plataforma universal de Windows. El método WebView.SetExecutionMode, en el espacio de nombres Xamarin.Forms.PlatformConfiguration.WindowsSpecific, se usa para establecer la configuración en la que un WebView hospeda su contenido, con la enumeración WebViewExecutionMode que proporciona tres valores posibles:

  • SameThread indica que el contenido se hospeda en el subproceso de la interfaz de usuario. Este es el valor predeterminado para WebView en Windows.
  • SeparateThread indica que el contenido se hospeda en un subproceso en segundo plano.
  • SeparateProcess indica que el contenido se hospeda en un proceso independiente fuera del proceso de la aplicación. No hay un proceso independiente por instancia de WebView, por lo que todas las instancias de WebView de una aplicación comparten el mismo proceso independiente.

Además, el método GetExecutionMode se puede usar para devolver el WebViewExecutionMode actual para la WebView.