C#计时器学习笔记
C#计时器类型
C#中提供了三种类型的计时器:
1、基于 Windows 的标准计时器(System.Windows.Forms.Timer)
2、基于服务器的计时器(System.Timers.Timer)
3、线程计时器(System.Threading.Timer)
1、基于 Windows 的标准计时器(System.Windows.Forms.Timer)为单线程所设计,这个计时器是使用最简单的一种,在Winform中,只要把工具箱中的Timer控件拖到窗体上,然后设置一下事件和间隔时间等属性就可以了。
2、System.Timers.Timer不依赖窗体,是从线程池唤醒线程,是传统的计时器为了在服务器环境上运行而优化后的更新版本。
3、线程计时器(System.Threading.Timer)也不依赖窗体,是一种简单的、轻量级计时器,它使用回调方法而不是使用事件,并由线程池线程提供支持,WPF中一般用的是这种,下面举例。
计时器实例—定时清空Label控件中的内容
using System.Windows.Threading;
// 定义一个空的计时器
DispatcherTimer timer = null;
// 定义一个循环次数标志
int clearTimes = -1;
// 在窗口初始化构造函数中进行实现
public MainWindow()
{
InitializeComponent();
// 初始化定时器
timer = new DispatcherTimer();
// 设置定时器参数
timer.Interval = new TimerSpan(0,0,0,0,100);
// 为这个定时器的事件添加订阅者
timer.Tick += delegate (object sender,EventArgs e)
{
// 20次出发一下,20*100=2000ms=2s
if (clearTimes < 0)
{
return;
}
else if (clearTimes > 20)
{
this.label.Content = "";
clearTimes = -1;
}
else
{
clearTimes++;
}
};
//触发计时器
timer.Start();
}