我想知道我应该对这种方法有什么关注。该代码将检查SQL表以执行计划的工作,在工作完成之前,我将更改计时器以不执行任何操作。 SQL触发器是否可行? Windows时间表上的控制台应用程序如何?
protected override void OnStart(string[] args) {
this.workChecker = new Timer(new TimerCallback(DoWork), null, 0, 60*10*1000); // 10 minutes
Thread.Sleep(Timeout.Infinite);
}
答案 0 :(得分:0)
您不应阻止OnStart
,所以不需要Thread.Sleep(Timeout.Infinite);
。计时器选项可能有效,但是如您所见,存在一些重新输入问题(您应确保在上一个工作期间不会启动新作业,以避免出现竞争状况)。我建议您检查一下Quartz.NET库,它可以立即解决此类问题,并具有许多其他用于计划作业的功能。