Протестируйте первый раз, когда возникает событие Elapsed. Эффективно или бесполезно?

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

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

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


person Florian    schedule 22.12.2011    source источник


Ответы (2)


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

person Chris    schedule 22.12.2011

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

person Arsen Mkrtchyan    schedule 22.12.2011
comment
Хорошо, нет никаких других последствий для использования System.Threading.Timer вместо System.Timers.Timer? - person Florian; 22.12.2011
comment
msdn.microsoft.com/en-us/magazine/cc164015.aspx — это статья о сравнении трех разных классов таймеров .NET. Я подозреваю, что это может ответить на ваши вопросы. Это зависит от того, что вы делаете с ним, что может быть лучше. - person Chris; 22.12.2011