监视windows服务中的计时器
本文关键字:计时器 服务 windows 监视 | 更新日期: 2023-09-27 18:18:51
我在我的windows服务中有以下代码
var timeToWait = TimeSpan.FromSeconds(20);
var interval = TimeSpan.FromMinutes(5);
var t = new Timer((s) =>
{
tracker.ProcessAuditLogs();
}, null, timeToWait, interval);
是否有任何方法可以监视这个计时器,通过轮询或任何其他机制,并获得显示在windows窗体上的信息,如
- 最后执行时间(例如,进程在7分钟前执行)
- 下一次执行(下一次执行的时间,例如,如果间隔20分钟,距离上次执行已经过了5分钟,则显示'15分钟到下一次执行'
Timer类没有标准的方法。我建议在父类中封装一个定时器对象,像这样:
public class MonitoredTimer {
private Timer _timer;
private int NextExecutionTime;
private int LastExecutionTime
public MonitoredTimer(TimerCallback callback,...) {
_timer = new Timer((s)=>callback(s);UpdateExecutionTimes());
}
public int GetLastExecution(){
return LastExecutionTime;
}
...
}