首页 .Net .NET Core(C#) System.Threading.Timer使用实现定时任务及示例代码

.NET Core(C#) System.Threading.Timer使用实现定时任务及示例代码

1、System.Threading.Timer、System.Windows.Forms.Timer和System.Timers.Timer区别

相关文档:

https://docs.microsoft.com/zh-tw/dotnet/api/system.windows.forms.timer?view=netcore-3.1

https://docs.microsoft.com/zh-tw/dotnet/api/system.timers.timer?view=netcore-3.1

https://docs.microsoft.com/zh-tw/dotnet/api/system.threading.timer?view=netcore-3.1

System.Windows.Forms.Timer是基于UI的

System.Timers.Timer是基于服务

System.Threading.Timer是基于线程

System.Timers.TimerSystem.Threading.Timer是多线程的,时间到了,就会执行,之前的任务没有执行完成也不影响,因为还会开个新线程继续执行新的任务。

System.Windows.Forms.Timer是单线程的,只有之前的任务执行完成了,才会执行下次任务,这样上一次任务处理超过时间,下一次任务执行就会延时执行。

2、System.Threading.Timer使用示例代码

Timer构造函数参数说明:

Callback:一个 TimerCallback 委托,表示要执行的方法。

State:一个包含回调方法要使用的信息的对象,或者为空引用。

dueTime:调用 callback 之前延迟的时间量(以毫秒为单位)。指定 Timeout.Infinite 以防止计时器开始计时。指定零 (0) 以立即启动计时器。

Period:调用 callback 的时间间隔(以毫秒为单位)。指定 Timeout.Infinite 可以禁用定期终止。

1)创建System.Threading.Timer实例

//Timeout.Infinite为-1,创建实例后,不执行计时器,如为0则立即执行
System.Threading.Timer threadTimer = new System.Threading.Timer(callback: new TimerCallback(TimerUp), null, Timeout.Infinite, 1000);

2)启动System.Threading.Timer实例

//1秒后执行一次,然后第5秒一次
threadTimer.Change(1000, 5000);

3)停止System.Threading.Timer实例

threadTimer.Change(-1, -1);
threadTimer.Dispose();

相关文档.NET Core Quartz使用cron表达式实现定时任务


特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。