首页 > 解决方案 > 是否在调用 MainPage 之前执行 OnStart() 中的所有内容(即使我使用覆盖异步)

问题描述

我的 App.Xaml.cs 中有这段代码

    protected override async void OnStart()
    {
        App.DB.CreateTables();
        App.DB.GetSettings();
        App.DB.PopulateTables();
    }

是否所有这三个方法都将在以下构造函数中的方法之前 100% 执行和完成:

    public MainPage()
    {

标签: xamarinxamarin.forms

解决方案


由于 OnStart() 是异步的,并且您没有等待,因此,不能 100% 确定您会在执行它们之前导航到 MainPage。

如果这些方法与 UI 无关,您可以:

protected override async void OnStart()
    {
          Task.Run(async()=>{ await YourMethods(); }).Wait();

    }

推荐阅读