在我的应用程序中,我曾经在Richtextbox中添加了大量文本。这需要很多时间,所以我添加了一个进度条。一旦GUI更新,我需要关闭它。更新GUI后是否有任何要捕获的内容。 我已经尝试过App.Current.MainWindow.IsLoaded == true,但似乎即使gui没有更新,但主窗口的MainWindow.IsLoaded属性为true。
以下是相同的代码。
private void OnWorkerMethodstart()
{
pbw = new ProgressBarWindow();
pbw.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal,
new Action(
delegate()
{
pbw.ShowDialog();
}
));
}
private void OnWorkerMethodStart()
{
ThreadStart tStart = new ThreadStart(OnWorkerMethodstart);
t = new Thread(tStart);
t.SetApartmentState(ApartmentState.STA);
t.Start();
this.OpenW();
BackgroundWorker _BackgroundWorker1 = new BackgroundWorker();
_BackgroundWorker1.DoWork += new DoWorkEventHandler(
delegate(object o, DoWorkEventArgs args)
{
this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal,
new Action(
delegate()
{
DateTime da = DateTime.Now.AddMinutes(30);
MainWindow mw;
while (DateTime.Now != da)
{
mw = new MainWindow();
//if (mw.Editor.Workflow.Steps.Count > 1)
if (App.Current.MainWindow.IsLoaded == true)
{
t.Abort();
break;
}
else
{
//Thread.Sleep(1000);
}
mw = null;
}
}
));
});
_BackgroundWorker1.RunWorkerAsync();
}