1

我有一个计时器,我想知道它是否有效,以测试它是否是计时器第一次引发经过的事件(我想在第一次引发 Elapsed 事件后更改 Interval 属性)

        _timer = new Timer(1000);
        _timer.Elapsed += 
            (src, e) =>
            {
                FireTrigger(this, EventArgs.Empty);
                if (isfirstTimeElapsed) // necessary ??
                {
                    _timer.Interval = 5000
                    isfirstTimeElapsed = false;
                }
            };

在性能方面什么是最好的选择?测试与否?

4

2 回答 2

3

它当然不是没用的,它是自我记录的代码,这意味着任何阅读它的人都会立即明白你想在第一次运行时更改间隔。如果您跳过 if 并且每次都设置时间间隔,那么您这样做的原因可能并不明显。就效率而言,我怀疑您会注意到差异,但当然,如果您担心,请执行一些测试。

于 2011-12-22T09:42:45.527 回答
2

您可以使用System.Threading.Timer,您可以在其中设置何时应该触发第一个事件,以及其他事件

于 2011-12-22T09:45:40.597 回答