C#使用Timer.Elapsed添加定时器后删除定时器

时间:2013-08-20 05:53:48

标签: c# timer

我这里有点问题。现在我在应用程序启动时使用它启动一个计时器:

if (Initialized == 0)
{
    errorCheckTimer.Elapsed += (sender, e) => OnErrorCheckTimerElapsed(sender, e);
    Initialized = 1;
}

确保它只启动一次。如果我多次执行此行,计时器将多次触发一次。

现在,在初始化计时器之后,我偶尔使用:

运行它
errorCheckTimer.Interval = ErrorTimerInterval;
errorCheckTimer.Enabled = true;
errorCheckTimer.Start();

在某些行为发生后,我将其停止:

tradeErrorTimer.Enabled = false;
tradeErrorTimer.Stop();

但是有一些模糊不清的故障发生了。计时器在首次初始化时始终有效,但有时根本不会打开,并且OnErrorCheckTimerElapsed将不会被执行。

因此,为了使其更具可重新性,我是否可以删除已添加到OnErrorCheckTimerElapsed.Elapsed中的计时器,以便在每次需要启动时初始化一个新计时器?

如果我尝试多次初始化它们,我会立即多次触发OnErrorCheckTimerElapsed。

谢谢。

1 个答案:

答案 0 :(得分:0)

如果您不想再运行一次计时器,则应将AutoReset属性设置为false。 errorCheckTimer.AutoReset = false;