Controle de thread principal Atualizações no iOS

Baixar exemplo Baixar o exemplo

Essa plataforma específica do iOS permite que o layout de controle e as atualizações de renderização sejam executadas no thread main, em vez de serem executadas em um thread em segundo plano. Ele raramente deve ser necessário, mas em alguns casos pode evitar falhas. Ele é consumido em XAML definindo a propriedade associável Application.HandleControlUpdatesOnMainThread 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 Application.On<iOS> método especifica que esse específico da plataforma só será executado no iOS. O Application.SetHandleControlUpdatesOnMainThread método, no Xamarin.Forms.PlatformConfiguration.iOSSpecific namespace , é usado para controlar se as atualizações de layout de controle e renderização são executadas no thread main, 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 as atualizações de layout de controle e renderização estão sendo executadas no thread main.