我需要在报告内容后向用户发送邮件。邮件应在事件报告时间后发送30分钟,然后在事件报告时间后发送105分钟,然后在事件报告时间后发送225分钟。
我正在使用窗口服务和C#,但我只需要一个条件来执行代码。
这是我的代码。
protected override void OnStart(string[] args)
{
timer1 = new Timer(1800000);
timer1.Enabled = true;
timer1.Elapsed += new ElapsedEventHandler(Timer1_Event);
}
public void Timer1_Event(object source, ElapsedEventArgs e)
{
if(datetime.now==incidentreportedtime+30mim)
{
//Send mail to user
}
}
我的问题是事件可能随时发生,并且该时间可能不会是服务执行代码的时间。
例如,事件提升时间是下午12:45,邮件将在下午1点15分发送。服务可能已经在下午12点50分开始,并且再次从下午1点20分开始,这不等于下午1点15分。在下午1点20分的同一时间内可能发生的事件很少,但并非所有事件都可以被视为发送邮件。
帮助我。
答案 0 :(得分:1)
public void Timer1_Event(object source, ElapsedEventArgs e)
{
if(DateTime.Now.Substract(incidentreportedtime).TotalMinutes == 30)
{
//Send mail to user
}
}
并确保计时器每分钟运行一次..
发送邮件谷歌有点像.net发送邮件我的第一个点击:http://weblogs.asp.net/scottgu/archive/2005/12/10/432854.aspx