protected void Application_Start(object sender, EventArgs e) { //在应用程序启动时运行的代码 System.Timers.Timer objTimer = new System.Timers.Timer(); objTimer.Interval = 30000; //这个时间单位毫秒,比如10秒,就写10000 objTimer.Enabled = true; objTimer.Elapsed += Email; } private void Email(object sender, EventArgs e) { new Thread(delegate() { DateTime D = DateTime.Now; if (Convert.ToInt32(D.DayOfWeek) == 6 && D.Hour >= 14) { Member_DAL.Common co = new Member_DAL.Common(); co.SendUserEmail2(); } Thread.Sleep(1000); }).Start(); }
公司要做一个定时更新本地数据的程序,每周六的凌晨两点更新本地数据(现在改成发Email),以确保本地数据的准确性。我做了一个定时发送邮件的程序来模拟这个业务。
写在在Global页面里面。如果将计时器的间隔设置太短,发送邮件会失败,因为邮件方阻止了这种发送频率的行为。
上面是用定时器来做的,我们可以在下面的Email这里获取当前日期和时间进行判断。
发现一个地方,DateTime的DayOfweek返回来的是英文的星期几,但是用数字匹配也能匹配成功。