编写一个C#应用程序来运行一些计划任务,我真正需要的是持续监控日期和时间,并在每个月的28号调用一次函数,然后回到耐心等待下一个28号一个月左右。
我猜它会以某种方式使用 System.Threading.Thread.Sleep(),但至于它应该运行的具体条件,以及如何防止它在相关日期运行多次,我不是当然...
非常感谢任何帮助:)
编写一个C#应用程序来运行一些计划任务,我真正需要的是持续监控日期和时间,并在每个月的28号调用一次函数,然后回到耐心等待下一个28号一个月左右。
我猜它会以某种方式使用 System.Threading.Thread.Sleep(),但至于它应该运行的具体条件,以及如何防止它在相关日期运行多次,我不是当然...
非常感谢任何帮助:)
您可以设置 Windows 计划任务以在每月 28 日运行您的控制台应用程序。
由于您的应用程序在运行之间不会占用任何资源,因此它对服务器资源非常简单、容易和轻量。
如果 PC 出现故障,您还可以勾选选项:“错过预定启动后尽快运行任务”。
有大量选项供您自定义任务的运行方式,例如:
并非所有选项都适用于所有版本的 Windows。
您可以使用每秒运行并检查日期的循环,并在指定日期执行并等待下个月。您将使用 System.Threading.Thread.Sleep() 让它等待 1 秒。
您可以通过跟踪最后一个日期并通过添加 1 个月来计算下一个日期来等待下一个日期。
DateTime? counter = null;
while (1 = 1)
{
if (DateTime.Now.Day == 28 && (!counter.HasValue || counter.Value.Date < DateTime.Now.Date ))
{
counter = DateTime.Now;
DoSomething();
}
Thread.Sleep(1000);
};