【发布时间】:2011-04-21 19:18:29
【问题描述】:
我有一个场景,其中使用 WPF 作为无模式对话框的一部分大大优于替代方案。但是,我看到的是,每次我调出对话框时,它都会变慢一点,直到最终需要 20 秒才能调出对话框。
我使用 ANTS 对其进行了概要分析,在我的表单的 InitializeComponent 部分中,它基本上指向三个不同位置的 ElementHost:创建主机、设置背景颜色(我可以消除)和分配子项。
虽然这发生在与主 UI 线程不同的 UI 线程上(通过创建一个线程,将它的单元设置为 STA,然后在其中执行另一个 Application.Run(myform)),但它仍然会锁定主 GUI,因为它非常忙。
如果您终止应用程序并重新开始,问题就会消失,并且它会在一段时间内再次运行良好。代码的其他部分似乎没有变慢。
在 ElementHost 之后我可以做些什么来清理吗?
【问题讨论】:
标签: wpf winforms elementhost