c# - 每 12 小时启动一个程序
问题描述
我想每 12 小时在程序中启动一个方法。
我需要做什么 ?
我必须使用计时器来执行此操作吗?
我有这个代码:
aTimer = new System.Timers.Timer(1000); //One second, (use less to add precision, use more to consume less processor time
int lastHour = DateTime.Now.Hour;
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Start();
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
if(lastHour < DateTime.Now.Hour || (lastHour == 23 && DateTime.Now.Hour == 0))
{
lastHour = DateTime.Now.Hour;
YourImportantMethod(); // Call The method with your important staff..
}
}
我可以调整它以每 12 小时启动一次我的程序吗?
解决方案
使用 async/await 的简单解决方案:
private static async void RepeatedAction()
{
TimeSpan delay = TimeSpan.FromHours(12);
while (true)
{
await Task.Delay(delay);
YourImportantMethod();
}
}
推荐阅读
- excel - 整列的Excel连接功能
- wpf - 具有已定义样式的 WPF 水印 Mahaps
- javascript - 根据空格和长度将字符串分成两行的条件语句
- c++ - 嵌套for循环中的分段错误
- java - springboot应用启动前如何实现ApplicationRunner?
- excel - 在 Excel 中,有没有办法让页面顶部成为编辑和查看区域,以查看下面列表中显示的详细信息?
- javascript - 如何在 ajax javascript 的每个循环中通过日期时间转换数据的值。
- mysql - Mysql语法更新设置值字符串用值替换另一列
- python - ValueError:在进入 ZGEHD2 参数号 2 时具有非法值
- angular - 使用 ionic 3+ 在 pwa 中显示离线页面