Проверьте в первый раз, когда происходит событие Elapsed. Эффективно или бесполезно? - PullRequest
1 голос
/ 22 декабря 2011

У меня есть таймер, и я хочу знать, эффективен ли он или нет, чтобы проверить, является ли таймер первым, когда событие истекло, или нет (я хочу изменить свойство Interval после первого вызова события Elapsed)

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

Что с точки зрения производительности, какой лучший выбор?тест или нет?

Ответы [ 2 ]

3 голосов
/ 22 декабря 2011

Это, конечно, не бесполезно, это самодокументированный код, который означает, что любой, кто его читает, сразу понимает, что вы хотите изменить интервал при первом запуске.Если вы пропустили if и просто устанавливали интервал каждый раз, может быть не понятно, почему вы это делаете.Что касается эффективности, я сомневаюсь, что вы заметите разницу, но, конечно, если вы беспокоитесь, проведите несколько тестов.

2 голосов
/ 22 декабря 2011

Вы можете использовать System.Threading.Timer , в котором вы можете установить, когда должно быть запущено первое событие, а другие

...