加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 07:51:54 所属栏目:百科 来源:网络整理
导读:我正在添加按钮以形成循环,我注意到添加单击事件处理程序会减慢应用程序的速度.后来我尝试了鼠标点击事件而不是单击事件,它立即工作. 此截图显示了我的测试结果: 源代码:http://pastebin.com/qVewNm1u 1000事件处理程序的结果: 点击:2892ms 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.这可以保证在您客户的机器上不会出现问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读