我的 App.Xaml 中有这个:
public App()
{
_backgroundWorker = new BackgroundWorker();
_backgroundWorker.DoWork += new DoWorkEventHandler(DoBackgroundWork);
_backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(BackgroundCompleted);
_backgroundWorker.RunWorkerAsync();
_splashView = new SplashView();
_splashView.Show();
}
该DoBackgroundWork方法执行一些数据库设置,然后BackgroundCompleted事件关闭_splashView并显示_mainView.
但是,修改_splashViewfrom中的任何内容BackgroundCompleted都会导致跨线程异常,我认为这是后台工作人员旨在解决的问题。我猜这与 backgroundworker 的工作方式有关App.Xaml。也许这是做启动画面的坏方法?