1

我这里有个小问题。现在我正在使用这个在应用程序开始时启动一个计时器:

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。

谢谢你。

4

1 回答 1

0

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

于 2013-08-20T06:02:33.833 回答