0

我知道我已经在某个地方看到了这个问题的答案,但是已经能够找到它。

基本上我有一个应用程序,用户可以在其中选择一天中的某个时间并且该应用程序将运行。它是一种备份应用程序。

我试图避开计划任务,因此考虑到这一点,我正在使用计时器。我遇到的问题是能够使用标准时间格式 IE : hh:mm 并将其转换为计时器的毫秒数。或者更好地说,我猜:

让应用程序识别用户选择的时间。计算当前时间和第一个 elapsed_event 的选定时间之间的时间,然后在事件发生后创建一个计时器,该计时器在用户选定的一天中的时间运行。

我再次记得在这里或另一个网站上看到过一些很好的例子……但我在任何地方都找不到。

我在 Visual Studio 2012 中使用 winforms C#

timer1.Elapsed += new ElapsedEventHandler(timer1_Elapsed);
        timer1.Interval = inter * 1000 * 60;
        timer1.Enabled = true;
        timer1.Start();
4

1 回答 1

0

您可以配置计划任务以在一天中的特定时间执行任务。

您可以从任务中执行 ac# 应用程序。


如果您不想使用计划任务,您可以执行以下操作
1. 将间隔设置为特定时间和当前时间的差
2. 第一次触发计时器时,将间隔设置为 86400 秒。

var time = DateTime.Now.Date.AddHour(16).AddMinute(40)// if timer it to be executed at 16:40
var timespan = time - DateTime.Now;
var interval = timespan.TotalSeconds;
if (interval < 0) interval = interval + 86400;

timer1_Elapsed

if (timer1.Interval != 86400) timer1.Inverval = 86400
于 2013-11-06T04:03:52.633 回答