当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > asp.net 定时间点执行任务的简易解决办法

ASP.NET
一个多文档界面的应用程序
asp+ 制作图形
asp.net中的vb7中如何调用dll中的函数
asp.net中的vb7中如何使用socket作一个传送时间的server
asp+发送Email完全手册
用浏览器来接收C# 的程序返回的时间cool!
DataGrid巧用实现目录浏览
asp+中常用的NameSpace的讲解
随机函数生成密码的asp.net版本
强大的数组功能(asp+程序数组功能调用)
如何用asp+获取post的页面的数据
asp+版本简单的留言板的制作(一)
asp+版本简单的留言板的制作(二)
asp+版本简单的留言板的制作(三)
如何在服务器上保存一定时间的信息
一个功能完善的专栏管理的程序->这是asp.net的第二个应用(一)
一个功能完善的专栏管理的程序->这是asp.net的第二个应用(二)
一个功能完善的专栏管理的程序->这是asp.net的第二个应用(三)
这是asp.net的第二个应用(四)
这是asp.net的第二个应用(五)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 156 ::
收藏到网摘: n/a

这里的定时间点执行任务,指的是每天的某个时间执行一项任务。 比如每天凌晨七点的时候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>