用第二个线程打开窗口

时间:2013-12-03 01:07:25

标签: wpf multithreading

我正在使用下面的代码打开我的下一个窗口,因为它正在另一个线程上运行到UI线程。我得到一个'Initialization of 'System.Windows.Controls.X' threw an exception.'...但是当我在UI线程中调用下一个Window时,我没有收到错误。如何从另一个线程中调用一个Window?

Page2 page2 = new Page2();
App.Current.MainWindow = page2;
this.SimpleInvoke(() => this.Close());
this.SimpleInvoke(() => page2.Show());

public static class DispatcherObjectExtensions
{
    public static void SimpleInvoke(this DispatcherObject dispatcherObject, Action action)
    {
        dispatcherObject.Dispatcher.Invoke(action);
    }
}

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal,               (ThreadStart)delegate()
{
       // in the gui thread here, so do what you gotta do
});