我的 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
.
但是,修改_splashView
from中的任何内容BackgroundCompleted
都会导致跨线程异常,我认为这是后台工作人员旨在解决的问题。我猜这与 backgroundworker 的工作方式有关App.Xaml
。也许这是做启动画面的坏方法?