创建在特定时间每天发生一次的事件

时间:2013-11-06 04:01:10

标签: c#

我知道我已经在某个地方找到了答案,但已经能够找到它。

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

我正试图避开预定的任务,所以考虑到这一点,我正在使用计时器。我遇到的问题是能够使用标准时间格式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();

1 个答案:

答案 0 :(得分:0)

您可以在一天的特定时间配置scheduled task以执行任务。

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


如果您不想使用预定任务,可以执行以下操作 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