-2

编写一个C#应用程序来运行一些计划任务,我真正需要的是持续监控日期和时间,并在每个月的28号调用一次函数,然后回到耐心等待下一个28号一个月左右。

我猜它会以某种方式使用 System.Threading.Thread.Sleep(),但至于它应该运行的具体条件,以及如何防止它在相关日期运行多次,我不是当然...

非常感谢任何帮助:)

4

2 回答 2

5

您可以设置 Windows 计划任务以在每月 28 日运行您的控制台应用程序。
由于您的应用程序在运行之间不会占用任何资源,因此它对服务器资源非常简单、容易和轻量。

如果 PC 出现故障,您还可以勾选选项:“错过预定启动后尽快运行任务”。

有大量选项供您自定义任务的运行方式,例如:

  1. 仅在用户登录时运行。
  2. 指定程序参数。
  3. 仅当计算机使用交流电源时才启动任务。
  4. 仅当以下网络连接可用时才启动任务。

并非所有选项都适用于所有版本的 Windows。

于 2012-10-26T16:14:41.520 回答
-6

您可以使用每秒运行并检查日期的循环,并在指定日期执行并等待下个月。您将使用 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);
            };
于 2012-10-26T16:14:12.083 回答