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 に答える