Partilhar via


Atualizações do controle de thread principal no iOS

Esse específico da plataforma iOS permite que o layout de controle e as atualizações de renderização sejam executadas no thread principal, em vez de serem executadas em um thread em segundo plano. Raramente deve ser necessário, mas em alguns casos pode evitar travamentos. É consumido em XAML definindo a Application.HandleControlUpdatesOnMainThread propriedade associável como true:

<Application ...
             xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
             ios:Application.HandleControlUpdatesOnMainThread="true">
    ...
</Application>

Como alternativa, ele pode ser consumido do C# usando a API fluente:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...

Xamarin.Forms.Application.Current.On<iOS>().SetHandleControlUpdatesOnMainThread(true);

O método Application.On<iOS> especifica que essa plataforma específica só será executada no iOS. O Application.SetHandleControlUpdatesOnMainThread método, no namespace, é usado para controlar se o layout do controle e as Xamarin.Forms.PlatformConfiguration.iOSSpecific atualizações de renderização são executadas no thread principal, em vez de serem executadas em um thread em segundo plano. Além disso, o Application.GetHandleControlUpdatesOnMainThread método pode ser usado para retornar se o layout de controle e as atualizações de renderização estão sendo executadas no thread principal.