我正在尝试从 MSSQL 和 PostrgeSQL 数据库中检索数据,以定期(每小时)将其填充到 MySQL 数据库中。
根据我所做的一项研究,我想使用 C# Timer 来做到这一点。但是,我并不完全理解计时器的工作方式。我在 Page_Load 中声明它,设置经过的事件处理程序并从事件处理程序调用一个方法。
protected void Page_Load(object sender, EventArgs e)
{
int duration = 100 * 60 * 5; //milliseconds * seconds * minutes
// Create a timer with a two second interval.
System.Timers.Timer timer = new System.Timers.Timer(duration);
// Hook up the Elapsed event for the timer.
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
timer.Enabled = true;
}
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
cf();
}
这行得通,但是...
问题是这样每次加载页面时都会初始化计时器。如何创建一个仅初始化一次并从那一刻起继续运行而不重新初始化的计时器。此外,如果计时器或方法失败 - 引发异常或服务器宕机,我该如何处理?那我该如何重新启动计时器呢?
任何见解都会有所帮助!先感谢您!