欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-03-09 11:51:47
比如每天凌晨七点的时候email发送一次报表。 这里首先想到的就是利用 global.asax 文件来实现, 以下global文件的内容。 复制代码 代码如下: <%...
比如每天凌晨七点的时候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>