Вот как я это делаю:
В методе FinishedLaunching инициализируйте и добавьте всплывающее представление в главное окно:
window.AddSubview(this.splashView);
После этого вызовите ваш код, который выполняет все то, что вы хотите сделать в потоке / асинхронном вызове. Я обычно использую ThreadPool. Не забудьте вызвать в основной теме:
ThreadPool.QueueUserWorkItem(delegate {
this.BeginInvokeOnMainThread(delegate {
//Initialize stuff here
//...
//when done, add your initial view to the window and remove the splash view
//eg.:
//window.AddSubview(myController.View);
//this.splashView.RemoveFromSuperview();
});
});
// show the window, which only displays the splash view now and return
window.MakeKeyAndVisible();
return true;
Грубый пример, но я надеюсь, что это поможет.