我正在编写一个程序,每5分钟发送一次短信。我想在系统时间是下午6点时停止此操作。我怎样才能做到这一点?这是我目前的代码。 我想根据我的上述要求修改它。
while (true)
{
sms.SendSMS();
Thread.Sleep(30000);
}}).Start();
}
答案 0 :(得分:0)
一般情况下从不使用睡眠是个坏主意,请改用计时器:
System.Timers.Timer SendSMS = new System.Timers.Timer();
SendSMS.Interval = 300000; ///300000ms=5min
SendSMS.Elapsed += new System.Timers.ElapsedEventHandler(SendSMS_Elapsed);
SendSMS.Enabled=true;
void SendSMS_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
sms.SendSMS();
}
添加第二个计时器以检查时间并在下午6点停止:
System.Timers.Timer StopSendSMS = new System.Timers.Timer();
StopSendSMS.Interval = 100;
StopSendSMS.Elapsed += new System.Timers.ElapsedEventHandler( StopSendSMS_Elapsed);
StopSendSMS.Enabled=true;
void StopSendSMS_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
if (int(DateTime.Now.Hour)==18))
{
SendSMS.Enabled=false;
StopSendSMS.Enabled=false; ///no need to check anymore
}
}
答案 1 :(得分:-1)
您可以使用以下条件检查系统TIME。
`if(DateTime.Now.Hour.ToString("HH") == "18") //Hour is in 24hour format`