c# – 为什么Winforms Click事件比MouseClick事件慢?

前端之家收集整理的这篇文章主要介绍了c# – 为什么Winforms Click事件比MouseClick事件慢?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在添加按钮以形成循环,我注意到添加单击事件处理程序会减慢应用程序的速度.后来我尝试了鼠标点击事件而不是单击事件,它立即工作.

此截图显示了我的测试结果:

代码http://pastebin.com/qVewNm1u

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

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

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

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

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

解决方法

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

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

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

如上所述,解决方法是禁用IntelliTrace.这可以保证在您客户的机器上不会出现问题.

猜你在找的C#相关文章