返回顶部

收藏

asp.net控制网站定时更新数据的C#类

更多

添加更新数据在类中写好,然后在Global.asax里面调用这个类,设置 TestTimer.Start(0, 30000);为1分钟

无需在服务器上安装任何服务就可以实现网站数据的定时更新操作

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Threading;

namespace OKGO.Web
{
    public class TestTimer
    {
        //定义变量n,Timer执行一次n自动加一,根据n来控制定时执行的时间,来解决Timer只能定时一分钟的时间范围
         static int n = 0;
        //TimerCallback 委托,GlobalTimer_ToDo表示要执行的方法
         public static Timer GlobalTimer = new Timer(new TimerCallback(GlobalTimer_ToDo), null, Timeout.Infinite, Timeout.Infinite);

         /*也可以直接定时
         GlobalTimer.Interval = 10;
                 GlobalTimer.Enabled = true;
                 GlobalTimerAutoReset = true;*/

         static void GlobalTimer_ToDo(object obj)
         {
             n = n + 1;
            if (n == 2)
             {
                //***这里写你要定时执行的程序
                 System.Data.SqlClient.SqlDataReader dataReader = null;
                 try
                 {
                     //is_549067
                      System.IO.StreamReader sr = null;
                     string str=string.Empty;
                     dataReader = OKGO.DataAccess.SQLServer.ChannelProvider.Provider.GetAllRoleName();
                             while (dataReader.Read() && dataReader.HasRows)
                             {
                                      System.Net.WebRequest temp = System.Net.WebRequest.Create("http://assist57.ddt.iugame.cn/other/getUserRegDateByUid?uid=is_"+dataReader["UserName"]+"");
            //读取
            try
            {
                System.Net.WebResponse myTemp = temp.GetResponse();
                sr = new System.IO.StreamReader(myTemp.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8"));
                str = sr.ReadToEnd();
                System.Xml.XmlDocument xmldoc = new System.Xml.XmlDocument();
                xmldoc.LoadXml(str);
                System.Xml.XmlNode nodes = xmldoc.SelectSingleNode("Result");
                string Rolename = nodes.Attributes[2].Value;//角色名称
                string RolenameTime = nodes.Attributes[3].Value;//角色创建时间
                if (Rolename == "")
                    continue;

                OKGO.DataAccess.SQLServer.ChannelProvider.Provider.GetUpdateRoleName(int.Parse(dataReader["UserName"].ToString()), Rolename, RolenameTime);
                                     sr.Close();
                                     sr.Dispose();
                                     sr.Close();
                                 }
                                 catch (Exception ex)
                                 {
                                     throw ex;
                                 }  

                             } 
                 }
                 catch (Exception exc)
                 {
                     if (dataReader != null)
                     {
                         dataReader.Close();
                         dataReader.Dispose();
                     }
                     throw exc;
                 }
                 finally
                 {
                     if (dataReader != null)
                     {
                         dataReader.Close();
                         dataReader.Dispose();
                     }
                     n = 0;
                 }

             }
         }

         public static void Start(long a, long b)
         {
             //Timer.Change(Int32, Int32)方法用来更改计时器的启动时间和方法调用之间的间隔,用 32 位有符号整数度量时间间隔
             GlobalTimer.Change(a, b);
         }

         public static void Stop()
        {
             //Timeout.Infinite是用于指定无限长等待时间的常数
             GlobalTimer.Change(Timeout.Infinite, Timeout.Infinite);
        }
    }
}
//该片段来自于http://outofmemory.cn

标签:c#,.net,网络

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. Herb Sutter 发表 2012-08-02 11:26:37 “Strong” and “weak” hardware memory models
  2. dormy 发表 2013-12-12 02:28:41 c#.netDataGrid绑定数据库数据
  3. itcodes 发表 2014-07-22 17:00:00 C#计算时间差。
  4. 姚 广远 发表 2015-06-22 07:01:45 C++ 中的封送处理概述
  5. 姚 广远 发表 2015-06-22 07:01:45 C++ 中的封送处理概述
  6. 米豆网 - 1000seo 发表 2012-08-21 05:09:00 .netframework中TimeZoneInfo类的使用
  7. Herb Sutter 发表 2012-12-03 21:34:30 Perspective: “Why C++ Is Not ‘Back’”
  8. Herb Sutter 发表 2013-07-09 16:47:02 Recommended reading: Why mobile web apps are slow
  9. 姚 广远 发表 2015-04-15 05:20:48 C#语言规范—语句
  10. 姚 广远 发表 2015-04-13 02:54:10 C# 与 C++ 数据类型对照表
  11. 姚 广远 发表 2015-04-14 06:17:41 C# 语言规范 —类型、变量和值
  12. 姚 广远 发表 2015-04-13 05:03:47 .NET运行机制

发表评论