私のアプリケーションは常にレコードを更新するために実行されています。Excelファイルをメールで送信する機能があります。毎日設定した時間までにお送りします。だから私はタイマー方式を使用します。それは私の機能を起動することができます。タイマー間隔を100に設定しました。現在の時計が10.00PMであるとすると、データベースで同じ場合、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();
}
}
}
誰かが私がこの問題を解決するのを手伝ってくれることを願っています、ありがとう。