Таймер получить интервал времени

Я создал таймер

private static AutoResetEvent autoEvent;
private static Timer stateTimer;
public static void Start()
{
    autoEvent = new AutoResetEvent(false);
    TimerCallback timerDelegate = new TimerCallback(SomeClass.TimerLoad);
    stateTimer = new Timer(timerDelegate, autoEvent, 1000, 3 * 60 * 60 * 1000);
}

из другой процедуры я меняю таймер:

stateTimer.Change(0, 5 * 60 * 1000);

теперь мне нужно знать, что такое интервал, есть ли для этого соответствующая инструкция?


person Alexei.Ozon    schedule 02.03.2010    source источник


Ответы (4)


Вместо этого используйте System.Timers.Timer, у которого есть свойство interval.

http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx

person Community    schedule 02.03.2010

Я еще не нашел способ сделать это. Столкнувшись с той же проблемой, я прибегал к сохранению интервала всякий раз, когда менял таймер.

"Хорошим" способом может быть наследование класса Timer и добавление туда свойства...

person Jens    schedule 02.03.2010
comment
+1: Создание подклассов кажется хорошей идеей, лучше, чем сохранение локальной переменной, о которой я думал изначально. - person Ian; 02.03.2010
comment
Тьфу =) Ну можно было бы хотя бы сделать обертку, чтобы скрыть уродливый бухгалтерский код. - person Jens; 19.12.2011

Как насчет свойства Interval Timer?

person Timores    schedule 02.03.2010
comment
это не Windows.Form Timer - это System.Threading.Timer, у него нет свойства Interval - person Alexei.Ozon; 02.03.2010

Разве вы не устанавливаете интервал в вызове метода Change, когда указываете 5 * 60 * 1000. Итак, ваш интервал составляет 300000.

person Neil Knight    schedule 02.03.2010