我做了什么
BackgroundWorker bg = new BackgroundWorker();
bg.DoWork += new DoWorkEventHandler(DoWork);
bg.RunWorkerCompleted += newRunWorkerCompletedEventHandler(bg_RunWorkerCompleted);
bg.RunWorkerAsync();
void DoWork(Object sender, DoWorkEventArgs args)
{
Dispatcher.BeginInvoke(delegate { InitializeComponent(); });
}
问题是它稍好一些,但页面动画和页面加载之间有明显的负荷。
答案 0 :(得分:0)
InitializeComponent()解析XAML并加载可视化树。延迟它直到后台工作者完成是一个令人难以置信的坏主意。您应该立即调用InitializeComponent,并在后台工作完成时显示空UI或加载进度条。你知道async / await模式吗?