我希望有一个Timer来每10秒更新一次全局变量,所以我在我的Global.asax.cs中放了一个计时器:
void Application_Start(object sender, EventArgs e)
{
Timer aTimer = new Timer();
aTimer.Interval = 10*1000;
aTimer.Tick += aTimer_Tick;
aTimer.Start();
}
void aTimer_Tick(object sender, EventArgs e)
{
// Update Data
}
但奇怪的是,10秒后没有任何事情发生。我想知道是否有可能这样做?
提前致谢。
答案 0 :(得分:3)
使用System.Timers.Timer
代替System.Windows.Forms.Timer
前者使用Elasped
作为事件处理程序,并且几乎可以在应用程序的任何位置按预期运行。后者是针对winforms定制的,应该在Form1_Load()
上使用,而不是在应用程序启动时使用。
答案 1 :(得分:1)
我想在Timer
void关闭后,Application_Start
对象被销毁。因此,尝试将其分配给应用程序变量。
答案 2 :(得分:1)
ASP.NET请求和事件的设计时间不长。您应该考虑编写Windows服务,具体取决于您要实现的目标(您要实现的目标是什么?)。