-1

我做了什么

        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(); });
       }

问题是它稍微好一点,但是在页面动画和页面加载之间存在明显的负载。

4

1 回答 1

0

InitializeComponent() 用于解析 XAML 并加载可视化树。将其延迟到后台工作人员完成是一个非常糟糕的主意。您应该立即调用 InitializeComponent,并在后台工作完成时显示空 UI 或加载进度条。你知道异步/等待模式吗?

于 2013-05-01T05:00:43.137 回答