![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Подскажите.. такой вопрос
Как можно приостановить работу таймера? т.е. не "убивать" его, а временно приостановить Код:
SetTimer(hwnd_1C, Timer_Interval, Timer_Interval, @TimerProc1C); // устанавливаем таймер function TimerProc1C() // вот тут хочу его приостановить ... // после выполнения нужных процедур, снова его запустить end; смысл в том, что на медленных компьютерах не успевает отработать код процедуры таймера, и таймеры накладываются друг на друга |
|
#2
|
||||
|
||||
|
Цитата:
Цитата:
Код:
SetTimer(hwnd_1C, Timer_Interval, Timer_Interval, @TimerProc1C); // устанавливаем таймер
var
TimerEntered: Boolean = False;
.....
function TimerProc1C()
if TimerEntered then Exit;
try
TimerEntered:=True;
// Делаем что-то
finally
TimerEntered:=False;
end;
end; |
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
kti (26.11.2013)
| ||
|
#3
|
|||
|
|||
|
Цитата:
Спасибо. Жаль конечно. А система нормально отнесется к частому удалению/созданию таймера, не будет "глючить"? Цитата:
Я так делал. Как мне кажется не помогает. На слабом компе, видимо, эти таймеры становятся в очередь, и по освобождению процессора начинают выполнятся по очереди. На компе это видно по торможению, и неадекватной работе. Даже после нажатия кнопки остановки таймера, идет обработка очереди (накопившихся таймеров). И несколько секунд приложение не реагирует.. Все таки решил сделать через KillTimer()/SetTimer() Попутный вопрос, в конструкции всегда будет вызван finally? Код:
if TimerEntered then Exit;
try
TimerEntered:=True;
try
// Делаем что-то
except On E : Exception do
begin
// обработка ошибок
exit; // после этого оператора, будет вызван finally?
end;
// опять что-то делаем
end;
finally
TimerEntered:=False;
end; |
|
#4
|
||||
|
||||
|
А почему не потоки + sleep?
|
|
#5
|
|||
|
|||
|
Цитата:
Да и до потоков мне еще далеко ![]() |