uwp 在启动时从文件加载配置

uwp loading config from a file at startup

我试图在启动时加载一些数据(从配置文件)。在 win 10 uwp 中访问文件的唯一方法是使用异步方法。

很好,但是:

我怎么能在构造函数中调用异步方法(我知道这是不可能的)或任何等效方法。这是我的实际代码。

sealed partial class App : Application
{

    public ITrackThatContext Context { get; private set; }        
    public App()
    {
        this.InitializeComponent();
        this.Suspending += OnSuspending;

        Context = await LocalFileTrackThatContext.CreateAsync(null);
    }
}

我可以通过应用首页上的按钮调用 Context = await LocalFileTrackThatContext.CreateAsync(null);,但我确信还有更好的方法。是否有任何入口点可以从启动过程中启动任务。我阅读了 startup stages,但我不知道在哪里加载我的配置文件。

虽然可能还有其他地方,但最方便的是在您加载的第一个页面的 OnNavigatedTo 方法中。

编辑:如果您只需要完成一次,您可以拥有一个只有 Frame 的页面,然后您可以从该页面导航到其他页面。或者你可以在某个地方存储一个 bool 值,无论操作是否完成,并根据它采取行动。

定义回调方法并将其提供给 Task.ContinueWith():

LocalFileTrackThatContext.CreateAsync(null).ContinueWith(contextLoaded);

在这种情况下,构造函数的其余部分应假设 Context 尚未设置 - 任何需要等到 Context 已知的事情都会在回调中发生。

回调方法传递了一个 Task 参数,它可以从那里获得 .Result 和 .Status。