大家好,对C# 使用Timer控件解决按钮幂等性问题感兴趣的小伙伴,下面一起跟随三零脚本的小编来看看C# 使用Timer控件解决按钮幂等性问题的例子吧。
Timer是一个定时器,作为C#开发Timer控件是我们用的比较多的一个控件,它的功能很简单,但是也是值得我们去学习的一个知识点,今天这篇文章就是想总结一下这个Timer控件,如果经常用还好,可以随时知道怎么写,对于我这种记性不好的同学呢,我就以这种形式去做一个小小的笔记,方便自己下一次使用和查询,内容比较简单,会的同学可以略过了!
简单的界面设计,我们点击界面上的按钮,看看如何使用Timer 解决按钮的幂等性问题,我们知道按钮我们多次点击会多次触发函数,如果连接下位机会发送多次同样的命令,显然这是不符合交互逻辑的,所以我们使用Timer的方式将按钮的状态改变一下,将按钮改为只读。
点击按钮我们可以看到按钮变灰了,表示我们禁止它再触发,这样可以避免多次点击,不会产生幂等性问题,按钮二我们让它在后台两秒打印一遍,我们可以看到两秒触发一次这个函数。
/**
*
* @arrange (三零.脚本) www.q3060.com
**/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Test929
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
button1.Enabled = true;//将按钮的用户交互打开
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled = true;//打开Timer定时器按钮
button1.Enabled = false;//将按钮的用户交互关闭这样可以实现,按钮不可点击两秒
}
private void button2_Click(object sender, EventArgs e)
{
timer2.Enabled = !timer2.Enabled;//打开定时器二的函数
}
private void timer2_Tick(object sender, EventArgs e)
{
Console.WriteLine("两秒执行一次这个函数");//打印这个话证明我们进入这个函数
}
}
}
这篇文章比较简单,只是简单的学习一下。