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

时间:2016-10-02 21:31:24

标签: c# win-universal-app windows-10-universal

我正在尝试在启动时加载一些数据(来自配置文件)。在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,但我无法弄清楚在哪里加载我的conf。

2 个答案:

答案 0 :(得分:1)

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

编辑:如果您只需要一个只有Frame的页面就可以完成此操作,然后导航到其他页面。或者你可以在某处存储bool值,无论操作是否完成,并根据该行为进行操作。

答案 1 :(得分:1)

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

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

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

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