asp.net 定时间点执行任务的简易解决办法

来源:互联网 发布:青蚨在线网络贷款 编辑:程序博客网 时间:2024/05/20 00:37
比如每天凌晨七点的时候email发送一次报表。 
这里首先想到的就是利用 Global.asax 文件来实现, 以下Global文件的内容。 
<%@ Application Language="C#" %> <%@ Import Namespace="System.Threading" %> <script runat="server"> //这里使用静态保持对这处Timer实例的引用,以免GC private static System.Threading.Timer timer = null; protected void Application_Start(object sender, EventArgs e) { //计算现在到目标时间要过的时间段。 DateTime LuckTime = DateTime.Now.Date.Add(new TimeSpan(7, 0, 0)); TimeSpan span = LuckTime - DateTime.Now; if (span < TimeSpan.Zero) { span = LuckTime.AddDays(1d) - DateTime.Now; } //按需传递的状态或者对象。 object state = new object(); //定义计时器 timer = new System.Threading.Timer( new TimerCallback(CertainTask), state, span, TimeSpan.FromTicks(TimeSpan.TicksPerDay)); } protected void Application_End(object sender, EventArgs e) { //结束时记得释放 if (timer != null) { timer.Dispose(); } } //这里是指定时间执行的代码,必须是静态的。 private static void CertainTask(object state) { //这里写你的任务逻辑 } </script>