Timer оставшееся время до Tick
От: stele Россия www.stele.su
Дата: 26.03.10 09:18
Оценка:
Каким образом можно посмотреть какое время осталось до вызова Tick в таймере Forms.Timer?
... << My edition based on RSDN@Home 1.2.0 alpha 4 rev. 1466 >>
В задаче спрашивается:
Сколько вытечет портвейна из открытого бассейна?
Re: Timer оставшееся время до Tick
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 26.03.10 09:20
Оценка:
Здравствуйте, stele, Вы писали:

S>Каким образом можно посмотреть какое время осталось до вызова Tick в таймере Forms.Timer?


Никак
Re[2]: Timer оставшееся время до Tick
От: stele Россия www.stele.su
Дата: 26.03.10 09:36
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Никак


А какое поведение у таймера должно быть при уходе в спящий режим и выходе из него? Он должен реально тикнуть после выхода или пропустить время? А то у меня складывается ощущение, что он тикает через раз.
... << My edition based on RSDN@Home 1.2.0 alpha 4 rev. 1466 >>
В задаче спрашивается:
Сколько вытечет портвейна из открытого бассейна?
Re[3]: Timer оставшееся время до Tick
От: TK Лес кывт.рф
Дата: 26.03.10 09:57
Оценка: 3 (1)
Здравствуйте, stele, Вы писали:

S>А какое поведение у таймера должно быть при уходе в спящий режим и выходе из него? Он должен реально тикнуть после выхода или пропустить время? А то у меня складывается ощущение, что он тикает через раз.


Таймер из Windows.Forms работает по остаточному принципу. Событие от него будет только в том случае, если в очереди сообщений нет никаких других событий.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[4]: Timer оставшееся время до Tick
От: Alex Dav Россия  
Дата: 26.03.10 10:13
Оценка:
Здравствуйте, TK, Вы писали:

TK>Таймер из Windows.Forms работает по остаточному принципу. Событие от него будет только в том случае, если в очереди сообщений нет никаких других событий.


Можно пример, когда я не получу сообщения от таймера?
Спасибо.
Re[5]: Timer оставшееся время до Tick
От: Jolly Roger  
Дата: 26.03.10 11:12
Оценка:
Здравствуйте, Alex Dav, Вы писали:

AD>Можно пример, когда я не получу сообщения от таймера?


Если GUI-поток будет чем-то занят в течении нескольких периодов срабатывания таймера, и не будет обрабатывать свою очередь сообщений, то это несколько периодов будут пропущены.

int i = 0;
System.Windows.Forms.Timer tm = new Timer();
long m = DateTime.Now.Ticks;
tm.Tick += new EventHandler(
    (o, ev) => 
    { 
        label1.Text = (++i).ToString();
        if (DateTime.Now.Ticks - m > 5000 * 10000)
        {
            tm.Stop();
            label1.Text += " Stop";
        }
    });
tm.Interval = 1000;
tm.Start();
//System.Threading.Thread.Sleep(3100); // Имитация занятости

Попробуйте запустить так, потом раскомментируйте последнюю строку.
"Нормальные герои всегда идут в обход!"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.