我的应用程序一直在运行以更新记录。我有用电子邮件发送 excel 文件的功能。它将在我每天设置的时间发送。所以我使用计时器方法。它可以触发我的功能。我将计时器间隔设置为 100。假设现在的时钟是晚上 10 点,如果在数据库中相同,那么它将触发 sendMail 函数。
但现在的问题是,定时器会多次触发我的函数,我认为大约有 10 次或更少。我只想着火一次。我应该使用什么最好的方法?
// 0 is off and 1 is on
int on_off = int.Parse(class_ta.getValue("tbl_setting", "value", "name", "onOffMail"));
if (on_off == 1)
{
DataTable dtSendTime = class_ta.valueTimeSend(0);
foreach (DataRow row in dtSendTime.Rows)
{
DateTime dtFire = DateTime.Parse(row["sendTime"].ToString());
TimeSpan tsHour = TimeSpan.Parse(dtFire.Hour.ToString());
TimeSpan tsMinutes = TimeSpan.Parse(dtFire.Minute.ToString());
if (tsHour == TimeSpan.Parse(DateTime.Now.TimeOfDay.Hours.ToString()) && tsMinutes == TimeSpan.Parse(DateTime.Now.TimeOfDay.Minutes.ToString()) && 0 == int.Parse(DateTime.Now.TimeOfDay.Seconds.ToString()))
{
sendMail();
}
}
}
希望有人能帮我解决这个问题,谢谢。