在使用VS开发工具创建的WinForm项目中,有一个定时器组件,拖出来放上,它只是一个定时处理的作用,不会显示在窗体中。
开发中如果需要定时处理,就使用Timer
组件即可,
在它的属性事件一栏里,有一个定时触发事件,在里面添加定时处理逻辑代码即可
如果只想处理一次就会自动停止,用上面的定时器组件处理,该怎么做呢,
可以在定时触发事件中,处理完成时,执行在最后的位置添加一行代码,如下
timer1.Stop();
只用来执行一次的,上面方法是大材小用,浪费资源,不推荐采用,可以改用系统内置的定时器对象,
介绍一下,这位才是真正的定时器,叫System.Timers.Timer
,可以这么用,代码如下
private void TimerSwipe_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
//这里写定时处理事件...
}
private void startNewTimer(int ms=1000)
{
timerSwipe = new System.Timers.Timer()
{
Interval = ms,
AutoReset = false//不重复
};
timerSwipe.Elapsed += TimerSwipe_Elapsed;
timerSwipe.Start();
}
private void stopTimerSwipe()
{
if (timerSwipe != null)
{
timerSwipe.Stop();
timerSwipe.Dispose();
timerSwipe = null;
}
}
开始定时,调用上面的
startNewTimer
方法,延迟1m执行一次结束,
其中参数AutoReset
若为true
就会定时重复执行,
若中途想取消定时,就调用上面的stopTimerSwipe
方法
还可以通过创建一个任务,延迟处理,代码如下
var task = new Task(() => {
Thread.Sleep(1000);//延迟1s执行
//...执行一些任务
});
task.Start();
从用法上讲,定时器的功能跟处理异步任务差不多,原理相似
讲到这里,定时器的处理方法就这些了,Get到了吗,
若觉得有帮助,记得点赞再走哦~