您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何安排C#Windows服务每天执行任务?

如何安排C#Windows服务每天执行任务?

我不会使用Thread.Sleep()。使用预定任务(如其他人所述),或在服务内部设置计时器,该计时器会定期触发(例如每10分钟触发一次),并检查自上次运行以来日期是否更改:

private Timer _timer;
private DateTime _lastRun = DateTime.Now.AddDays(-1);

protected override void OnStart(string[] args)
{
    _timer = new Timer(10 * 60 * 1000); // every 10 minutes
    _timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
    _timer.Start();
    //...
}


private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
    // ignore the time, just compare the date
    if (_lastRun.Date < DateTime.Now.Date)
    {
        // stop the timer while we are running the cleanup task
        _timer.Stop();
        //
        // do cleanup stuff
        //
        _lastRun = DateTime.Now;
        _timer.Start();
    }
}
c# 2022/1/1 18:15:31 有482人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶