我想创建一个计时器,在特定时间每 24 小时调用一次方法。我不想通过 Windows 调度程序执行此操作,而是应该在代码中完成。这是我当前使用的代码:
DateTime now = DateTime.Now;
DateTime today = now.Date.AddHours(16);
DateTime next = now <= today ? today : today.addDays(1);
Systems.Threading.TimerCallback callback = new TimerCallback(DisplayMessage);
Systems.Threading.Timer timer = new System.Threading.Timer(callback, null, next - now, TimeSpan.FromHours(24));
我的问题是,如果next
最终距离当前时间只有几分钟,那么代码可以工作并通过DisplayMessage()
. 如果时间差大于几分钟,则代码不起作用,没有异常、崩溃或任何情况。我尝试在其中放置日志语句、消息框和断点,DisplayMessage()
以确保我能够正确查看何时DisplayMessage()
调用,但没有运气。