按钮的第一次点击很慢

8
我用 WPF 创建了一个简单的应用程序,发现了一个奇怪的行为: 这个应用程序有两个按钮,它们的行为无关且非常简单。每当我启动它时,任何一个按钮的第一次点击都需要两到三秒钟才能完成。只有第一次点击会变慢。随后的点击几乎是立即响应的,符合它们简单的行为预期。我在 Google 和 SO 上搜索过,但没有人似乎遇到同样的问题。
该应用程序的详细信息如下:
NorthWind 数据库在 SQL server 2008 上;
Linq to SQL 自动生成的类;
Customers 表作为 DataGrid;
按钮 1 OnClick 事件:Context.SubmitChanges();
按钮 2 Onclick 事件会交替更改 MainWindow 类上的一个布尔 DependencyProperty。
如您所见,设置非常简单。如果每次点击按钮都很慢,那么我会将其归因于 WPF 性能问题。奇怪的是,每当我启动它时,只有第一次点击响应缓慢,其他情况正常。

2
@jose 不是的,JIT编译器会在运行时“即时”编译代码,因此得名。字节码编译完成后,应用程序启动前就已经完成了,但本地代码的编译则是在运行时进行的。JIT编译器的一项优化是缓存机器代码以供以后使用。这可能是为什么您第一次点击后的点击速度比第一次点击快的原因。 - Rohan
1
你是否在发布模式下且没有使用VS运行应用程序? - Vyacheslav Volkov
我已经在发布模式下运行了,但是减速仍然持续。在你的要求下,我在没有使用VS的情况下运行(之前没有考虑过),现在它正常运行,没有减速。 - jose
2
我刚在这个问题中找到了解决方案。我之前并没有想到它们是相关的,因为另一个问题涉及到每一个第一次交互。现在我不确定我的问题是否重复了。 - jose
@Highcore 我没有使用EF。问题实际上是由IntelliTrace中的Gesture Capture引起的,正如我在上面链接的答案中所述。 - jose
显示剩余4条评论
1个回答

9

为了解决这个未回答的问题,这是我的发现:这是IntelliTrace手势捕捉的已知问题。关闭手势捕捉(工具->选项->IntelliTrace-> IntelliTrace事件)可以完全解决该问题。更多细节可以在此答案中找到。


加一。这个问题已经困扰我一个小时了! - Matt Whitfield

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接