繁体   English   中英

Xamarin / Xamarin.Forms-初始化MasterDetailPage时出现死锁?

[英]Xamarin / Xamarin.Forms - Deadlock when initializing MasterDetailPage?

我有一个Xamarin.Forms应用程序。 第一步,应用程序的用户必须在一个简单的ContentPage登录页面上登录。 用户成功登录后,他应该看到一个MasterDetailPage。

我的问题现在是此代码行产生死锁。 因此,此代码行将永远无法完成。

_masterPage.Master = _mainMenuPage;

这是整个功能:

  private void SignInButtonClicked(string username, string password)
    {
        SignInAsync(username, password).ContinueWith(task =>
        {
            if (task.Result)
            {
                _signInPage.StopActivityIndicator();

                _masterPage.Master = _mainMenuPage;
                _masterPage.Detail = _masterNavigationPage;
                MainPage = _masterPage;
            }

        }, System.Threading.CancellationToken.None, System.Threading.Tasks.TaskContinuationOptions.OnlyOnRanToCompletion, System.Threading.Tasks.TaskScheduler.FromCurrentSynchronizationContext());
    }

登录异步:

    private async System.Threading.Tasks.Task<bool> SignInAsync(string username, string password)
    {
        bool signedIn = true;

        //ToDo SignIn logic

        if (signedIn)
        {
            _mainMenuPage = new CPM.Arda.Mobile.Freelancer.Ui.Pages.MainMenu(this);
            await _mainMenuPage.InitAsync();
            await _mainMenuPage.RefreshDataAsync();

            _mainMenuPage.MainMenuItemSelectedEvent += MainMenuItemSelected;

            CPM.Arda.Mobile.Freelancer.Ui.Pages.General.Overview overviewPage = new CPM.Arda.Mobile.Freelancer.Ui.Pages.General.Overview(this);
            await overviewPage.InitAsync();
            await overviewPage.RefreshDataAsync();

            _masterNavigationPage = new Xamarin.Forms.NavigationPage(overviewPage);

            _masterPage = new CPM.Arda.Mobile.Freelancer.Ui.Pages.Master(this);
            await _masterPage.InitAsync();
            await _masterPage.RefreshDataAsync();
        }

        return signedIn;
    }

有任何想法吗? 对我来说似乎很奇怪。

我找到了解决方案。 我忘记在CPM.Arda.Mobile.Freelancer.Ui.Pages.MainMenu(MasterDetailPage中的MasterPage)上设置Title属性。 Xamarin.Forms的常见错误。

但无一例外都很难找到。 Xamarin有时没有帮助:/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM