我正在添加按钮以形成循环,我注意到添加单击事件处理程序会减慢应用程序的速度.后来我尝试了鼠标点击事件而不是单击事件,它立即工作.
此截图显示了我的测试结果:
源代码:http://pastebin.com/qVewNm1u
1000事件处理程序的结果:
点击:2892ms
MouseClick:1ms
我无法弄清楚为什么Click事件很慢.
编辑:
如果我将构建平台目标更改为x64或任何cpu,结果将更改:
单击:5,MouseClick:9
看起来像x86平台目标导致了这个问题,但与x86 MouseClick时间(1ms)相比,x64结果仍然不太好.
EDIT2:
我改变了截图,现在它会显示更好的结果.
解决方法
我重申,但它是VS2010特有的. VS2008中没有这样的行为,两者都执行少于1次.它也不依赖于.NET版本.
这看起来像UltimateTrace中的IntelliTrace中的缺陷.尝试深入挖掘并转换非托管代码调试以消除效果.项目属性,调试选项卡,勾选“启用非托管代码调试”.此外,在没有调试器的情况下运行程序(Ctrl F5)会删除效果.扣篮是工具选项,IntelliTrace,常规,解开启用以删除效果.
我建议您将您的发现发布到connect.microsoft.com.您可以在反馈报告中引用此主题.他们需要了解诊断问题所需的一切.
如上所述,解决方法是禁用IntelliTrace.这可以保证在您客户的机器上不会出现问题.