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

比如每天凌晨七点的时候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>

(0)

相关推荐

  • asp.net显示页面执行时间

    复制代码 代码如下: protected void Application_BeginRequest(Object sender, EventArgs e) { Application["StartTime"] = System.DateTime.Now; } protected void Application_EndRequest(Object sender, EventArgs e) { System.DateTime startTime = (System.DateTime)A

  • ASP.NET操作各类时间段获取方法汇总

    本文实例讲述了ASP.NET操作各类时间段获取方法,分享给大家供大家参考.具体如下: 复制代码 代码如下: DateTime dt = DateTime.Now; //当前时间 DateTime startWeek = dt.AddDays(1- Convert.ToInt32(dt.DayOfWeek.ToString("d"))); //本周周一 DateTime endWeek = startWeek.AddDays(6); //本周周日 DateTime startMonth

  • ASP.NET显示农历时间改进版

    本文实例讲述了ASP.NET显示农历时间的方法,是前面一篇文章源码的改进版.分享给大家供大家参考.具体如下: 前面有一篇取农历时间http://www.jb51.net/article/57481.htm,不过没有进行封装使用起来需要手动修改.本次进行简单封装一下,可以直接进行调用. 代码如下: 取农历时间的类 复制代码 代码如下: public class CountryDate  {       public string ChineseTimeNow = "";       pu

  • ASP.NET显示农历时间的方法

    本文实例讲述了ASP.NET显示农历时间的方法.分享给大家供大家参考.具体实现方法如下: CS部分代码如下: 复制代码 代码如下: public string ChineseTimeNow = "";  public string ForignTimeNow = "";  private static ChineseLunisolarCalendar calendar = new ChineseLunisolarCalendar();  private static

  • ASP.NET生成两个日期范围内随机时间的实现方法

    本文实例讲述了ASP.NET生成两个日期范围内随机时间的实现方法.分享给大家供大家参考.具体方法分析如下: 想网上找个生成随机天数的方法找不到,后面只得自己写了,贴给大家方便使用 思路:算两个日期的相差天数,然后在0到相差天数的范围内生成随机数,再用结束时间的天数部分减去这个随机数,代码: 复制代码 代码如下: /// <summary> /// (在两个时间范围内)生成随机日期 /// </summary> /// <param name="startime&qu

  • ASP.NET网站实时显示时间的方法

    本文实例讲述了ASP.NET网站实时显示时间的方法.分享给大家供大家参考.具体方法如下: 在ASP.NET环境中开发设计网站或网络应用程序时,往往需要实时显示当前日期和时间.这时,通常使用AJAX控件来实现. 需要注意的是,在.NET Framework 2.0版本中,工具箱中是没有AJAX Extensions控件的.而.NET Framework 3.5版本中集成了AJAX. ASP.NET AJAX包括三部分: ①一个扩展客户端JavaScript功能的客户端库或框架: ②一个允许ASP.

  • asp.net页面中时间格式化的示例

    asp.net页面将Eval中的时间显示为"yyyy-MM-dd"格式 复制代码 代码如下: <table>  <tr>    <td style="width:273px;color:#105db5;" valign="top">[**平台]  <a href="javascript:void(0)" style="color:#6c6c72" title='&l

  • asp.net下日期和时间处理的类库

    复制代码 代码如下: using System; namespace Utilities { /// <summary> /// Common DateTime Methods. /// </summary> /// public enum Quarter { First = 1, Second = 2, Third = 3, Fourth = 4 } public enum Month { January = 1, February = 2, March = 3, April =

  • asp.net 通过httpModule计算页面的执行时间

    创建一个类库,建立如下类: 复制代码 代码如下: using System; using System.Collections.Generic; using System.Web;//引用web命名空间 using System.Text; namespace TimerHttpModule { public class Class1:IHttpModule//继承IHttpModules { public void Init(HttpApplication application)//实现IH

  • asp.net计算每个页面执行时间的方法

    本文实例讲述了asp.net计算每个页面执行时间的方法.分享给大家供大家参考.具体分析如下: 这里的asp.net代码可实现计算每个页面的执行时间,无需要修改页面的相关代码,这段代码会给所有的页面统一加上执行时间显示 public class PerformanceMonitorModule : IHttpModule { public void Init(HttpApplication context) { context.PreRequestHandlerExecute += delegat

随机推荐