2013-10-03 123 views
7

我用wpf创建了一个简单的应用程序,并注意到一个奇怪的行为: 应用程序有两个按钮,具有不相关和非常简单的行为。每当我启动它,任何按钮的第一次点击需要两到三秒才能完成。只有第一次点击很慢。随后的点击几乎是立竿见影,正如他们简单的行为所预期的那样。我搜索谷歌和SO,但没有人似乎遇到同样的问题。第一次点击按钮很慢

应用程序的详细信息是:

SQL Server 2008上的NorthWind db;

Linq to SQL自动生成的类;

Customers作为DataGrid的表;

按钮1 OnClick事件:Context.SubmitChanges();

Button 2 Onclick事件在MainWindow类中交替布尔型DependencyProperty。

正如您所看到的,设置非常简单。如果每按一下按钮的速度都很慢,我会将它们归因于WPF性能问题。奇怪的是,每当我启动它,只有第一次点击响应缓慢,其他人是正常的。

+0

JIT编译器必须在第一次单击时编译字节码。它可以在其他点击上执行已编译的本机代码,因为它已被缓存在内存中。这会使第一个点击后的任何点击快得多。 – Rohan

+0

我见过一些网络操作出现这种行为。我最初认为它与主机名查找有关,但应该由操作系统缓存,但每次运行应用程序时都会发生。尽管如此,你可以用非网络相关的操作来描述它。 – Steve

+0

@Rohan我想过这个,但是应用程序启动之前不应该编译完成吗?如果没有,有没有办法强制这种行为? – jose

回答

9

只是为了从未回答的列表中获得此问题,下面是我的发现:这是IntelliTrace手势捕获的已知问题。关闭手势捕捉(工具> - >选项 - > IntelliTrace-> IntelliTrace事件)会使问题完全消失。更多详细信息可参见this answer

+0

再加一个。这让我烦了大约一个小时! –

相关问题