我有两个WPF窗口Window1.xaml和window2.xaml。 在window2.xaml.cs中,我有一个函数可以进行一些复杂的计算并在TextBlock上显示中间结果。
现在我想要什么。 通过单击Window1.xaml的按钮,我想打开Window2.xaml作为对话框,并希望执行windows2.xaml的复杂功能。
如果我在Window2.xaml'加载事件上调用复杂按钮,则在执行复杂功能后稀释框apear。
如何通过线程执行此操作。
答案 0 :(得分:1)
您无需在线程中打开窗口。打开Window2后,在Window2.Loaded
事件处理程序中为复杂函数启动一个线程。这将使您的UI不受干扰。
答案 1 :(得分:0)
根本不建议在不是UI线程的线程中打开窗口。您可以使用Show()
(无模式)方法或ShowDialog()
(模态)方法打开弹出窗口。在Window2的加载方法中,您可以启动一个执行复杂操作的新线程,一旦完成该操作,它就会显示一个对话框。
现在,在与线程不同的线程中,如果要显示任何UI(对话框,窗口)或更改现有UI(文本块等),则必须使用Dispatcher.Invoke
方法。