关于timer不定时触发的问题
各位,我在applocation_start中定义了TIMER测试,希望能每1秒钟刷新一下时间,但是为什么老是不刷新呢以下是我的代码void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
System.Timers.Timer myTimer = new System.Timers.Timer();
myTimer.Interval = 1000;
//关联事件
myTimer.Elapsed += new System.Timers.ElapsedEventHandler(myTimer_Elapsed);
myTimer.AutoReset = true;
//给Application["TIMEDEMO"]一个初始值
Application.Lock();
Application["TIMEDEMO"] = DateTime.Now.ToString();
Application.UnLock();
myTimer.Enabled = true;
myTimer.Start();
}
关联的事件代码:
void myTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
Application.Lock();
Application["TIMEDEMO"] = DateTime.Now.ToString();
Application.UnLock();
}
小弟想做一个定时操作数据库的功能,先测试一下这种方法是否行得通,请大家给点已经,谢谢!!
--------------------编程问答-------------------- Application_Start方法执行完成后,你能保证myTimer 不被释放吗? --------------------编程问答-------------------- 你还是写在相应页面上把 --------------------编程问答-------------------- 这个怎么写在相应页面上啊,这个是后台程序,定时自动运行 --------------------编程问答-------------------- timer被垃圾回收了吧 --------------------编程问答-------------------- 你要把Timer 加入到Application变量里面 --------------------编程问答-------------------- System.Timers.Timer myTimer = new System.Timers.Timer();
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
myTimer.Interval = 1000;
//关联事件
myTimer.Elapsed += new System.Timers.ElapsedEventHandler(myTimer_Elapsed);
myTimer.AutoReset = true;
//给Application["TIMEDEMO"]一个初始值
Application.Lock();
Application["TIMEDEMO"] = DateTime.Now.ToString();
Application.UnLock();
myTimer.Enabled = true;
myTimer.Start();
}
关联的事件代码:
void myTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
Application.Lock();
Application["TIMEDEMO"] = DateTime.Now.ToString();
Application.UnLock();
}
要声明一个全局Timer,这样才能保证Application_Start方法执行完成后,myTimer 不被释放。
不然myTimer被释放了,就产生不了每1秒刷新一次的效果了。 --------------------编程问答-------------------- Damon_King
我照你的做法,定义了全局TIMER 但是还是不行啊 --------------------编程问答-------------------- 怎么知道没有运行呢?
我这里测试过,可以正常的运行。 --------------------编程问答-------------------- 那就奇怪了啊,我这里怎么就不行呢,老是触发不了 --------------------编程问答-------------------- 我用了楼主的代码一行也没有改变,试到我的程序里一是可以正常运行的。
不明白楼主说的不触发是什么,你设置断点不会停下来吗?还是没有达到你要的效果? --------------------编程问答-------------------- 我是说,正常运行时,页面上那个时间会变动的,但是我这里测试页面上的时间根本就不变; --------------------编程问答-------------------- 楼主可以参考使用setTimeout方法,
查看:http://www.51fy.cn/web/JavaScript/200708/41698.html
补充:.NET技术 , ASP.NET