如何在单独的STA线程中创建WPF用户控件并在主线程中使用它?

时间:2015-02-26 14:25:17

标签: c# wpf multithreading

我正在尝试创建一个WPF用户控件,它需要很长时间才能启动。因此,我想在单独的STA线程中创建用户控件,并将其添加到主UI线程中的StackPanel内。但是,由于在单独的线程中创建了用户控件,因此它不允许。感谢专家的帮助!感谢。

1 个答案:

答案 0 :(得分:0)

由于自定义控件正在执行该过程,因此请在单独的线程上执行该过程。创建一个内部INotifyProperty属性作为可见性标志,开始时不可见。当完成该过程后,它会更改标志,并且控制在堆栈面板中变得可见,一切都很好。

这是处理长时间运行操作的标准做法,远离gui而不必处理STA线程问题。