C#中实现了一个参数保存功能的按钮,点击后保存参数,客户会出现多次点击,如果调用到了核心的处理过程就容易崩溃,所以在按钮事件里面添加了Enabled设置为false,执行完成后再最后再设置为true,但是遇到问题是,连续点击多次,这个时候按钮已经执行任务变灰后不可以点击了,但是变正常后按钮又执行了之前的点击,在变灰色的时候点了多少次,它都会在变正常后自动再次执行多少次,哪怕你鼠标没有在按钮上面了,怎么解决?网上有很多方式,什么锁啊,定时器啊,委托啊,异步等等,都不怎么好用!
代码如下:
- btn_DebugImage.Enabled = false;
- //中间是执行任务的函数和代码
- btn_DebugImage.Enabled = true;
复制代码
解决方案:
我们第一想到的是肯定是消息队列中消息在禁用后继续执行了,所以就从这个上面做文章:
在btn_DebugImage.Enabled = true; 该句代码前面加:
就是让应用程序的消息队列自动走完(在按钮正常前清空消息队列即可),那么就直接解决了后续的响应问题了!
|