我希望每次每小時都會發生一次事件發生在系統時鐘中。例如,我在早上7:45運行我的程序,然後應該在上午8:00提高事件,而不是在上午8:45。 在上午8:00事件發生後,此事件應在每個小時上午9:00,上午10:00,上午11:00等提出......要在系統時鐘中每小時發出一次事件已經過系統時鐘
任何人都可以幫助我展示一些代碼... 我使用C#.net等提前 謝謝...
UPDATE:
現在,我得到了我的問題的簡單解決方案。因此我想分享這個解決方案。 lboshuizen的回答已經正確。我的回答與lboshuizen的回答相同,但更詳細和準確。
首先它需要使用定時器。計時器基本上以毫秒爲基礎工作,有時需要額外的計算。因此,我想首先實現毫秒到分鐘格式化功能。
int CalculateMillisecondUntilNextHour()
{
int REMAIN_MINUTE = 60 - DateTime.Now.Minute;
DateTime now = DateTime.Now;
DateTime nexthour = now.AddMinutes((minute)).AddSeconds(now.Second * -1).AddMilliseconds(now.Millisecond * -1);
TimeSpan interval = nexthour - now;
return (int)interval.TotalMilliseconds;
}
void CheckEachHourPassed()
{
System.Windows.Forms.Timer t = new System.Windows.Forms.Timer();
t.Interval = CalculateMillisecondUntilNextHour();
t.Tick += new EventHandler(t_Tick);
t.Enabled = true;
}
void t_Tick(object sender, EventArgs e)
{
MessageBox.Show("Raise Your Event");
t.Interval = CalculateTimerInterval(REMAIN_MINUTE);
}
在這裏,主要工作函數是CheckEachHourPassed()。在你想啓動你的事件調度器的地方調用這個函數。
谷歌會告訴你肯定 – Pavenhimself
@daveL,沒什麼,很明顯 – lboshuizen
你試過了什麼?你見過[this](http://stackoverflow.com/questions/4122509/is-there-an-event-that-fires-at-a-specific-time)? – MilkyWayJoe