2010-08-20 59 views
3

我目前正在开发一个将利用现有的WinForm对话框的WPF应用程序。我在WinForm上调用ShowDialog()到显示时间之间有很长时间的滞后。从WPF应用程序显示WinForm对话框的性能问题

即使重复使用WinForm对话框对象,第二次命中时的延迟时间也几乎一样。这意味着问题不在构造函数中。

有没有人有办法提高速度或知道为什么速度如此之慢?

+0

'长'多久?它在Load事件处理程序中做了什么? – 2010-08-20 17:22:36

+0

这两个范围取决于使用哪个对话框。长时间保持3秒左右,空白对话框。在一个8秒钟的实例中,如果从WinForms应用程序运行,其初始命中不到2秒,然后立即显示子序列。 – 2010-08-20 17:29:51

回答

0

在我的机器上使用空白WPF应用程序和空表单对话框进行的快速测试表明,最大延迟来自Win7执行的“打开窗口”动画。所以我认为在WPF-Forms互操作中没有内在的性能问题。相反,我们可能错过了关于对话的关键实现细节。

  • 什么是您在LoadFormShown事件中的对话?也许你正在使用继承,并且违规代码在层次结构中进一步下降了?
  • 您是否在使用第三方组件套件?这些往往会在启动时进行相当多的初始化。

你最好打赌的可能是使用探查器找出时间实际花在哪里。