Xamarin.iOS バックグラウンドスレッドからUIを操作する


バックグラウンドスレッドはUIを変更できません。ほとんどすべてのUIKitメソッドは、メインスレッド上で呼び出さなければなりません。

NSObjectUIViewControllerまたはUIViewを含む)のサブクラスから:

InvokeOnMainThread(() =>
{
    // Call UI methods here
});

標準のC#クラスから:

UIApplication.SharedApplication.InvokeOnMainThread(() =>
{
    // Call UI methods here
});

InvokeOnMainThreadは、メインスレッド上で実行中のコードが実行されるのを待ってから実行を続けます。待機する必要がない場合は、 BeginInvokeOnMainThread使用しBeginInvokeOnMainThread