• asp.net web 定时执行任务 定时器 Global.asax


    web网站里面,需要每隔1分钟,执行一个任务,并且一直保持这个定时执行状态,可以用如下一个方法:

    以下代码是 Global.asax.cs 的全部代码。 

    using System;
    using System.Xml;
    
    namespace Web.SSART.Site
    {
        public class Global : System.Web.HttpApplication
        {
    
            protected void Application_Start(object sender, EventArgs e)
            {
                // 在应用程序启动时运行的代码  
                TimeTask.Instance().ExecuteTask += new System.Timers.ElapsedEventHandler(Global_ExecuteTask);
                TimeTask.Instance().Interval = 10000 * 10;//表示间隔
                TimeTask.Instance().Start();
            }
            void Global_ExecuteTask(object sender, System.Timers.ElapsedEventArgs e)
            {
                //在这里编写需要定时执行的逻辑代码
    
    
                XmlDocument xmldoc = new XmlDocument();
                XmlNode xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
                xmldoc.AppendChild(xmlnode);
                XmlElement xmlelem = xmldoc.CreateElement("", "urlset", "");
                xmldoc.AppendChild(xmlelem);
                //加入另外一个元素
                for (int i = 1; i < 4; i++)
                {
                    XmlNode root = xmldoc.SelectSingleNode("urlset");
                    XmlElement xe1 = xmldoc.CreateElement("url" + i);
                    XmlElement xesub1 = xmldoc.CreateElement("loc");
                    xesub1.InnerText = "http://www.ssart.net/news/news_16702.html";
                    xe1.AppendChild(xesub1);
    
                    XmlElement xesub2 = xmldoc.CreateElement("lastmod");
                    xesub2.InnerText = DateTime.Now.ToString();
                    xe1.AppendChild(xesub2);
    
                    XmlElement xesub3 = xmldoc.CreateElement("changefreq");
                    xesub3.InnerText = "always";
                    xe1.AppendChild(xesub3);
    
                    XmlElement xesub4 = xmldoc.CreateElement("priority");
                    xesub4.InnerText = "always";
                    xe1.AppendChild(xesub4);
    
                    XmlElement xesub5 = xmldoc.CreateElement("data");
    
                    XmlElement xesub6 = xmldoc.CreateElement("display");
    
                    XmlElement xesub7 = xmldoc.CreateElement("xhtml_url");
                    xesub7.InnerText = "always";
                    xesub6.AppendChild(xesub7);
    
                    xesub5.AppendChild(xesub6);
    
                    xe1.AppendChild(xesub5);
    
    
                    root.AppendChild(xe1);//添加到<Employees>节点中
                }
    
                //保存创建好的XML文档
                xmldoc.Save("d://data.xml");
            }
    
            protected void Session_Start(object sender, EventArgs e)
            {
    
            }
    
            protected void Application_BeginRequest(object sender, EventArgs e)
            {
    
            }
    
            protected void Application_AuthenticateRequest(object sender, EventArgs e)
            {
    
            }
    
            protected void Application_Error(object sender, EventArgs e)
            {
    
            }
    
            protected void Session_End(object sender, EventArgs e)
            {
    
            }
    
            protected void Application_End(object sender, EventArgs e)
            {
    
            }
    
    
    
        }
    
        //创建一个定时器的类
        public class TimeTask
        {
            public event System.Timers.ElapsedEventHandler ExecuteTask;
    
            private static readonly TimeTask _task = null;
            private System.Timers.Timer _timer = null;
    
    
            //定义时间
            private int _interval = 60000;
    
            public int Interval { set; get; }
    
    
            static TimeTask()
            {
                _task = new TimeTask();
            }
    
            public static TimeTask Instance()
            {
                return _task;
            }
    
            //开始
            public void Start()
            {
                if (_timer == null)
                {
                    _timer = new System.Timers.Timer(_interval);
                    _timer.Elapsed += new System.Timers.ElapsedEventHandler(_timer_Elapsed);
                    _timer.Enabled = true;
                    _timer.Start();
                }
            }
    
            protected void _timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
            {
                if (null != ExecuteTask)
                {
                    ExecuteTask(sender, e);
                }
            }
    
            //停止
            public void Stop()
            {
                if (_timer != null)
                {
                    _timer.Stop();
                    _timer.Dispose();
                    _timer = null;
                }
            }
    
        }
    
    
    }
  • 相关阅读:
    C#控件开发(三)
    C#控件开发(四)
    如何将方行的按纽改变为其他的形状
    C#绘制圆角矩形
    Win7右键不能新建文件夹
    WinForm窗体FormClosing事件导致无法关机
    反射动态调用WinForm窗口
    C#钩子本线程内消息拦截
    C#控件开发(一)
    七个C#编程小技巧
  • 原文地址:https://www.cnblogs.com/chenghu/p/3493842.html
Copyright © 2020-2023  润新知