В настоящее время я пытаюсь создать заставку, однако я не могу выполнить несколько задач для настройки сразу.
Я пытался использовать класс BackgroundWorker
, а также класс Thread
, и, похоже, ни один из них не работает.
В файле app.xaml.cs:
protected override void OnStartup(StartupEventArgs e)
{
var splashScreen = new Windows.Splash();
splashScreen.Show();
base.OnStartup(e);
splashScreen.Close();
}
В файле splashScreen.xaml.cs:
public Splash()
{
InitializeComponent();
DataContext = this;
changeLoadingTxtTimer = new System.Timers.Timer(2000);
changeLoadingTxtTimer.Elapsed += Timer_Elapsed;
backgroundWorker = new BackgroundWorker();
backgroundWorker.DoWork += D_DoWork;
backgroundWorker.RunWorkerAsync();
changeLoadingTxtTimer.Start();
}
private void D_DoWork(object sender, DoWorkEventArgs e) { UpdateDatabase(); }
private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
LoadingTxtValue = LoadingTxts[rd.Next(0, LoadingTxts.Length - 1)];
if (!backgroundWorker.IsBusy)
changeLoadingTxtTimer.Stop();
}
}
Я ожидаю, что при работе BackgroundWorker
загрузка текста будет меняться каждые 2 секунды, но в действительности происходит то, что BackgroundWorker
завершает свою работу, а заставка закрывается.