我不会使用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(); }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)