为什么Winforms Click事件比MouseClick事件慢?

Jae*_*aex 7 .net c# events click winforms

我正在添加按钮以形成循环,我注意到添加单击事件处理程序会减慢应用程序的速度.后来我尝试鼠标点击事件而不是单击事件,它立即工作.

此截图显示了我的测试结果: 替代文字 源代码:http://pastebin.com/qVewNm1u

1000事件处理程序的结果:
单击:2892ms MouseClick:1ms

我无法弄清楚为什么Click事件很慢.

编辑:如果我将构建平台目标更改为x64或任何CPU,结果更改:单击:5,MouseClick:9看起来像x86平台目标导致此问题但仍然x64结果与x86 MouseClick时间(1ms)相比也不太好.

Edit2:我改变了截图,现在它会显示更好的结果.

编辑3:https://connect.microsoft.com/VisualStudio/feedback/details/597039/winforms-click-event-slower-than-the-mouseclick-event

Han*_*ant 5

我重申,但它是VS2010特有的.VS2008中没有这样的行为,两者都执行少于1次.它也不依赖于.NET版本.

这看起来像UltimateTrace中的IntelliTrace中的缺陷.尝试深入挖掘并转换非托管代码调试,删除了效果.Project + Properties,Debug选项卡,勾选"启用非托管代码调试".此外,在没有调试器(Ctrl + F5)的情况下运行程序会删除效果.扣篮是工具+选项,IntelliTrace,常规,取消启用以删除效果.

我建议您将您的发现发布到connect.microsoft.com.您可以在反馈报告中引用此主题.他们需要了解诊断问题所需的一切.

如上所述,解决方法是禁用IntelliTrace.这保证不会成为客户机器上的问题.