我正在处理的应用程序已将此代码编码在app.xaml.cs
中 protected override async void OnStart()
{
await Task.Run(() =>
{
cardSetWithWordCount = DB.GetCardSetWithWordCount(Settings.cc.Text());
PointChecker.CheckPoints();
StartTimer();
});
}
我想提出建议的是,是否有任何理由在这样的Task中的OnStart中运行代码。还是OnStart事件还是应用程序启动的某个部分需要在应用程序可用之前完成?
答案 0 :(得分:1)
Well OnStart是Xamarin.Forms App生命周期中的一种方法。并且在您的Xamarin.Forms执行开始后立即被调用。
XF文档说:
应用程序开发人员重写此方法以在应用程序启动时执行操作。
关于您问的另一个问题:
OnStart事件或应用程序启动的某个部分需要在应用程序可用之前完成
它是Xamarin.Forms应用生命周期的一部分,
XF文档说:
Application类包含三个可以重写以处理生命周期方法的虚拟方法:
OnStart-在应用程序启动时调用。
OnSleep-每次应用程序进入后台时调用。
OnResume-在将应用程序发送到后台后,在恢复应用程序时调用。
请注意,没有终止应用程序的方法。在正常情况下(即不是崩溃),应用程序将在OnSleep状态下终止,而无需任何其他代码通知。
使用Task.Run的原因很简单,Task.Run中的所有代码行都无法等待,这意味着它们都没有等待,因此,根据定义,任务就是这个原因,因此用过的。了解任务的工作原理here
祝你好运
在查询的情况下还原