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。
我试图在启动时加载一些数据(从配置文件)。在 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。