다음을 통해 공유


iOS의 주 스레드 제어 업데이트

이 iOS 플랫폼별 기능을 사용하면 백그라운드 스레드에서 수행되는 대신 기본 스레드에서 컨트롤 레이아웃 및 렌더링 업데이트를 수행할 수 있습니다. 거의 필요하지 않지만 경우에 따라 충돌을 방지할 수 있습니다. 바인딩 가능한 속성을 다음으로 설정하여 XAML에서 Application.HandleControlUpdatesOnMainThread 사용되는 속성 true입니다.

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

또는 흐름 API를 사용하여 C#에서 사용할 수 있습니다.

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

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

이 메서드는 Application.On<iOS> 이 플랫폼별이 iOS에서만 실행되도록 지정합니다. Application.SetHandleControlUpdatesOnMainThread 네임스페이스의 메서드는 백그라운드 스레드에서 Xamarin.Forms.PlatformConfiguration.iOSSpecific 수행되는 대신 컨트롤 레이아웃 및 렌더링 업데이트가 기본 스레드에서 수행되는지 여부를 제어하는 데 사용됩니다. 또한 이 메서드를 Application.GetHandleControlUpdatesOnMainThread 사용하여 컨트롤 레이아웃 및 렌더링 업데이트가 기본 스레드에서 수행되는지 여부를 반환할 수 있습니다.