2012-04-12 3 views
2

Как настроить таймер на работу с секундами? Когда я использую таймер из панели инструментов без каких-либо изменений, он начинает работать с другим блоком времени.
Буду благодарен за любую помощь, которую вы можете мне дать.Timer_tick in C#

У меня есть что-то вроде этого:

t = 0; 
timer1.Start(); 
if (t == 600) 
    timer1.Stop(); 
+0

У меня есть что-то вроде этого: t = 0; timer1.Start(); if (t == 600) timer1.Stop(); – Bogdan

+0

Какой таймер вы используете? В зависимости от того, какую версию фреймворка и какой тип приложения вы используете, есть, я думаю, три разных компонента таймера. Один из них использует секунды в качестве интервала, остальные используют миллисекунды. – HackedByChinese

+0

Таймер работает с миллисекундами (1000 миллисекунд в секунду) и, к сожалению, не может быть изменен. –

ответ

2

умножить количество секунд, которые вы хотите на 1000, он использует миллисекунды из коробки

+0

@hamad Большое спасибо! – Bogdan

+0

@cubski Спасибо большое! – Bogdan

+0

@ Loci Большое спасибо! – Bogdan

3

EDIT Используйте timer.interval = 1000 * n; где п число секунд между тиками.

+0

Этот ответ ничего не объясняет и предполагает, что OP хочет 1 секунду ... –

+0

Вы правы, я только что отредактировал код для объяснения. – Loci

3

Timer.Interval Свойство принимает значение в миллисекундах. Вы должны умножить свою ценность на 1000, чтобы установить интервал в секундах.

aTimer.Interval = 1*1000; // 1 second interval 
aTimer.Interval = 2*1000; // 2 seconds interval 

Edit:

Если я правильно понял, вы должны зарегистрировать Timer.Tick event как

aTimer.Tick += new EventHandler(TimerEventProcessor); 

и проверить значение t в его обработчик событий. Если t == 600, то вы можете остановить таймер

private static void TimerEventProcessor(Object myObject, EventArgs myEventArgs) 
{ 
    ... 
    t++; 
    if(t == 600) 
     aTimer.Stop(); 
} 
1

Таймер использует миллисекунды в единицу времени, вы можете сделать вычисления в соответствии с вашими потребностями. В этом случае вы хотите задержать секунды, вы можете сделать что-то вроде:

int secondsInterval = 5; 
timer.Interval = secondsInterval * 1000; 

Надеюсь, это поможет.