我有一个 wpf 表单,一旦用户从控件中做出选择,我想从中显示一个加载弹出窗口,因为由于数据库不是本地的,数据的加载可能需要很长时间。我让一切正常工作,直到我为弹出窗口创建线程。
这是我创建线程的地方:
public void Start()
{
if (_parent != null)
_parent.IsEnabled = false;
_thread = new Thread(RunThread);
_thread.IsBackground = true;
_thread.SetApartmentState(ApartmentState.STA);
_thread.Start();
_threadStarted = true;
SetProgressMaxValue(10);
Thread th = new Thread(UpdateProgressBar);
th.IsBackground = true;
th.SetApartmentState(ApartmentState.STA);
th.Start();
}
和线程方法:
private void RunThread()
{
_window = new WindowBusyPopup(IsCancellable);
_window.Closed += new EventHandler(WaitingWindowClosed);
_window.ShowDialog();
}
现在执行的那一刻我得到这个错误:
不能使用属于与其父 Freezable 不同的线程的 DependencyObject。
任何帮助,将不胜感激 :)