await Task.Delay () не работает на Xamarin.iOS с использованием MVVMCross - PullRequest
1 голос
/ 01 октября 2019

Я работаю над приложением Xamarin.iOS, использующим архитектуру mvvm. Проблема в том, что если я пытаюсь запустить await Task.Delay (2000) в методе Initialize основного класса ViewModel, приложение останавливается на LaunchScreen без каких-либо сообщений об ошибках. Без этой строки приложение работает отлично.

MainViewModel.cs

public override async Task Initialize()
{
    await Task.Delay(2000);
}

Есть идеи, что я делаю не так?

Редактировать: инициализироватьMVVMCross вызывается после того, как я вызываю awaitNavigationService.Navigate ()

public class CustomAppStart : MvxAppStart
{
    public CustomAppStart(IMvxApplication application, IMvxNavigationService navigationService) : base(application, navigationService)
    {
    }
    protected override async Task NavigateToFirstViewModel(object hint = null)
    {
        await NavigationService.Navigate<MainViewModel>();
    }
}

И, согласно документации, я могу безопасно использовать await: MvvmCross ViewModel Lifecycle

1 Ответ

0 голосов
/ 07 октября 2019

Как указал @kistelekig выше, он смог решить ее, поместив задержку задачи в функцию жизненного цикла ViewAppearing модели представления. Так бы выглядело это

public override async Task ViewAppearing()
{
    base.ViewAppearing()
    await Task.Delay(2000);
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...