项目需要这样一个功能,为了防止网站活跃度降低,用模拟用户在网站无人管理的时候进行不定时发送!
查MSDN文档的定时器整了半天没整出来,然后漫无目的的google。在快下班的时候终于弄好了:
首先在Global的Application_Start中执行如下定时器
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
Timer t = new Timer(10000); //设置时间间隔10秒钟发一次
t.Elapsed += new ElapsedEventHandler(t_Elapsed);//要执行的方法
t.AutoReset = true;
t.Enabled = true;
}
t_Elapsed方法如下
private void t_Elapsed(object sender, ElapsedEventArgs e)
{
Random rd = new Random();
double sss = rd.Next(1000, 10000);
(sender as System.Timers.Timer).Interval = sss;//更改定时器时间,弄死我了
DataTable dt = new DataTable();
dt = sqlhelper.GetDataSet("select top 1 id,title from tbtest where isshow=1 order by newid()");//随机出一条不重复的数据
if (dt.Rows.Count>0)
{
sqlhelper.ExecuteCommand("insert into cmtable (title,fromdate) values ('" + dt.Rows[0]["id"] + "',getdate())");
sqlhelper.ExecuteCommand("update tbtest set isshow=0 where id='" + dt.Rows[0]["id"].ToString() + "'");
}
}
其中(sender as System.Timers.Timer).Interval = sss; 这句话是关键,这里就是重新设置定时器时间的
可以弄一个随机数,这样发送的时间就不会有规律了,人家也不知道这个是程序自动发送的了,嘿嘿。。。