微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.这可以保证在您客户的机器上不会出现问题.

原文地址:https://www.jb51.cc/csharp/99736.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐