1、使用System.Timers.Timer和System.Threading.Timer实现定时任务
1)使用System.Timers.Timer实现
文档:.NET Core(C#) System.Timers.Timer使用实现定时任务及示例代码
2)使用System.Threading.Timer实现
文档:.NET Core(C#) System.Threading.Timer使用实现定时任务及示例代码
2、使用Quartz.NET实现定时任务
文档:.NET Core(C#) Quartz.NET实现定时任务的方法及示例代码
3、使用while和sleep及Task实现定时任务
public class TaskTimer
{
private static int _interval = 1000;//间隔时间
private static bool _isRuning = false;
private static Action _action = () =>
{
while (_isRuning)
{
taskAction();
System.Threading.Thread.Sleep(_interval);
}
};
private static Action taskAction;
Task timer = new Task(_action);
public TaskTimer(int interval, Action action)
{
_interval = interval;
taskAction = action;
}
public void Start()
{
_isRuning = true;
if (timer == null)
timer = new Task(_action);
timer.Start();
}
public void Stop()
{
_isRuning = false;
timer.Wait();
timer.Dispose();
timer = null;
}
}
使用示例:
TaskTimer timer = new TaskTimer(1000, () =>
{
Console.WriteLine(DateTime.Now);
});
timer.Start();//启动
timer.Stop();//停止