【WinForm】定时器的使用方法除了定时还有延迟执行可用

在使用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到了吗,

若觉得有帮助,记得点赞再走哦~

请添加图片描述

猜你喜欢

转载自blog.csdn.net/zs1028/article/details/130254408