Поделиться через


Режим выполнения WebView в Windows

Эта платформа задает поток, на котором WebView размещается его содержимое. Он используется в XAML, задав WebView.ExecutionMode привязываемое свойство значение WebViewExecutionMode перечисления:

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

Кроме того, его можно использовать из C# с помощью api fluent:

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

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

Метод WebView.On<Windows> указывает, что эта платформа будет выполняться только в универсальная платформа Windows. Метод WebView.SetExecutionMode в Xamarin.Forms.PlatformConfiguration.WindowsSpecific пространстве имен используется для задания потока, на котором WebView размещается его содержимое, с WebViewExecutionMode перечислением, предоставляющим три возможных значения:

  • SameThread указывает, что содержимое размещено в потоке пользовательского интерфейса. Это значение по умолчанию для WebView Windows.
  • SeparateThread указывает, что содержимое размещено в фоновом потоке.
  • SeparateProcess указывает, что содержимое размещено в отдельном процессе от процесса приложения. Для каждого экземпляра WebView не существует отдельного процесса, поэтому все экземпляры WebView приложения используют один и тот же отдельный процесс.

Кроме того, GetExecutionMode метод можно использовать для возврата текущего WebViewExecutionMode для объекта WebView.