.net定时任务如何实现?

我用的是网上提供的方法:
1. 在Global.asax文件中 的 Application_Start 中定义一个线程
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码//定义一个线程

    System.Threading.Thread LoadServiceData = new System.Threading.Thread(new System.Threading.ThreadStart(LoadFromWebservice));
    LoadServiceData.Start();
}
    2.线程中调用的方法
     private void LoadFromWebservice()
{
    //定义一个定时器,并开启和配置相关属性
    System.Timers.Timer Wtimer = new System.Timers.Timer(1000);//执行任务的周期
    Wtimer.Elapsed += new System.Timers.ElapsedEventHandler(Wtimer_Elapsed);
    Wtimer.Enabled = true;
    Wtimer.AutoReset = true;
}

public  void Wtimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
    // 得到 hour minute second 如果等于某个值就开始执行某个程序。
    int intHour = e.SignalTime.Hour;
    int intMinute = e.SignalTime.Minute;
    int intSecond = e.SignalTime.Second;
    // 定制时间; 比如 在10:30 :00 的时候执行某个函数(我想设置为每天00:00:00执行)
    int iHour = 00;
    int iMinute =00;
    int iSecond = 00;
    // 设置 每天的10:30:00开始执行程序
    if (intHour == iHour && intMinute == iMinute && intSecond == iSecond)
    {
        执行SQL语句
    }
}

    这是网上实现解决IIS应用程序池自动回收的问题
    void Application_End(object sender, EventArgs e)  

 {  

        System.Threading.Thread.Sleep(1000);

       string RequestURL = "http://www.test.com/default.aspx";
//这里设置你的web地址,可以随便指向你的任意一个aspx页面甚至不存在的页面,目的是要激发Application_Start
System.Net.HttpWebRequest HttpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(RequestURL);
System.Net.HttpWebResponse __HttpWebResponse = (System.Net.HttpWebResponse)
HttpWebRequest.GetResponse();
System.IO.Stream __rStream = __HttpWebResponse.GetResponseStream();//得到回写的字节流

       //当不再需要计时器时,请使用 Dispose 方法释放计时器持有的资源。
__rStream.Close();
__rStream.Dispose();  
}

用的是阿里的虚拟空间,发现一次都没有执行,是什么原因呢?

查看全部
qq_39464862
qq_39464862
2018/10/29 01:28
  • net定时任务
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

2个回复