如何讓System.Timers.Timer每15分鐘觸發Elapsed事件與系統時鐘同步?換句話說,我希望它在xx:00,xx:15,xx:30,xx:45(其中xx表示任意小時)時精確觸發C#,System.Timers.Timer,每15分鐘與系統時鐘同步運行
1
A
回答
0
您可以讓它每秒過去一次,並檢查當前時間是00,15,30或45,然後才轉發事件。
第一想法是:
private static System.Timers.Timer aTimer;
private static System.DateTime _last;
public static void Main()
{
aTimer = new System.Timers.Timer(10000);
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Interval = 1000;
aTimer.Enabled = true;
Console.WriteLine("Press the Enter key to exit the program.");
Console.ReadLine();
}
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
DateTime time =
new DateTime(1,1,1, DateTime.Now.Hours, DateTime.Now.Minute);
if(time.Minute==0 ||time.Minute==15 || time.Minute==30 || time.Minute==45)
{
// Avoid multiple notifications for the same quarter.
if (_last==DateTime.MinValue || _last!=time)
{
_last = time;
// Do further processing.
doProcessing();
}
}
}
(實施例基於this MSDN documentation)
0
當開始該程序,或者改變事件時間將被觸發,事件時間加載到存儲器(以避免每秒從硬盤讀取這些數據。)然後設置一個定時器,每隔1秒觸發一次。設置爲每1秒觸發的計時器在處理器上的開銷很小。設置一個並打開任務管理器,您甚至不會注意到處理器運行的時間超過定時器運行之前的時間。然後在計時器事件中進行檢查,以檢查是否應該開啓事件。
0
使用Quartz.net。然後你可以使用regex來定義間隔。
相關問題
- 1. C#,System.Timers.Timer,與系統時鐘同步運行每分鐘
- 2. 模擬器時鐘是否與實際系統時鐘同步?
- 3. 如何在每15分鐘的當前時間每15分鐘運行一次android服務?
- 4. jQuery的Timepicker - 每15分鐘
- 5. jqplot力蜱每15分鐘
- 6. 實時與系統時鐘分開
- 7. System.Timers.Timer每5分鐘上升事件
- 8. System.Timers.Timer每5分鐘不工作
- 9. 計時器計劃運行方法每15分鐘
- 10. crontab在特定時間之間每15分鐘運行
- 11. 分佈式系統時鐘
- 12. 春季執行方法,每15分鐘
- 13. ElasticSearch問題每2小時15分鐘
- 14. 計時器與系統時鐘同步上升事件
- 15. 使用Cder窗口與UTC時間同步系統時鐘OS
- 16. 如何每15分鐘運行一次android功能,特別是每天15分鐘的標記?
- 17. 需要每隔30秒觸發一次計時器與系統時鐘同步
- 18. 時鐘同步
- 19. 每分鐘運行腳本
- 20. 與ntp同步時鐘
- 21. 分佈式系統中的內部時鐘同步和外部時鐘同步有什麼區別?
- 22. 15分鐘時間序列
- 23. 用R每15分鐘創建一個時間系列
- 24. 配置cron以每15分鐘運行一次URL
- 25. 每15分鐘運行一次java程序
- 26. 運行一個批處理腳本,每15分鐘
- 27. 配置cron作業在Jenkins上每15分鐘運行一次
- 28. 通過15分鐘
- 29. SolrCloud 15-20分鐘
- 30. lstat()塊15分鐘
您可以讓它每秒過去一次,並檢查當前時間是00,15,30或45,然後才轉發事件。 –
'正好'由於其他系統活動而不太可能... –
@MitchWheat - 考慮到我們擁有的許多工具(並且不是微秒),「不可能」是不太可能的。 –