龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

asp.net定时间执行发送一次报表任务解决办法

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
这里的定时间点执行任务,指的是每天的某个时间执行一项任务。 比如每天凌晨七点的时候email发送一次报表。 这里首先想到的就是利用 Global.asax 文件来实现, 以下Global文件的内容。

这里的定时间点执行任务,指的是每天的某个时间执行一项任务。

比如每天凌晨七点的时候email发送一次报表。

这里首先想到的就是利用 Global.asax 文件来实现, 以下Global文件的内容。

Code [http://www.xueit.com]
<%@ 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>
精彩图集

赞助商链接