在特定时间的运行方法
本文关键字:运行 方法 定时间 | 更新日期: 2023-09-27 18:04:10
我正在做一个Windows窗体(c#)的应用程序,我想在布局中设置一个用户定义给定小时的区域。
然后,当用户点击"开始"按钮时,每小时执行一个方法。
最简单的方法是什么?
一个简单的WinForms Timer可以完成这项工作:
DateTime runTime;
public Form1() {
InitializeComponent();
DateTime nowTime = DateTime.Now;
runTime = new DateTime(nowTime.Year, nowTime.Month, nowTime.Day, 12, 0, 0);
timer1.Interval = 500;
}
void timer1_Tick(object sender, EventArgs e) {
if (DateTime.Now > runTime) {
timer1.Stop();
MessageBox.Show("It's time!");
}
}
void button1_Click(object sender, EventArgs e) {
timer1.Start();
}
只需将runTime值更新为小时和/或分钟。警报显然不会被触发,除非程序正在运行。正如Hans所指出的,这将需要一个服务。
没有测试过,但是像这样?
var timer = new System.Timers.Timer((DateTime.Now - (DateTime.Now - TimeSpan.FromHours(DateTime.Now.Hour + 1))).Milliseconds);
timer.Elapsed += (sender, evt) =>
{
timer.Interval = (DateTime.Now - (DateTime.Now - TimeSpan.FromHours(DateTime.Now.Hour + 1))).Milliseconds;
// Do things
};
timer.Start();