清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
添加更新数据在类中写好,然后在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);
}
}
}