![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
таймер
Алексей11 © (2007-12-05 14:37:00)Привет
Подскажите как сделать чтобы программа ничего не делала n секунд.
Timer1.Enable:=true;
Timer1.Interval:=1000;
while Timer1.Enable=true do..
Почему сваливается б бесконечный цикл(из цикал не вызывает событие ontimer)?
Как сделать правильно?
Второй вопрос, то же самое только время 'спячки' должно случайно выбираться в диапазоне от 10 до 60 секнуд?
Спасибо!
Palladin (2007-12-06 00:21:00) [1]
> Алексей11 (05.12.07 23:17) [38]
ты знаешь, заставь себя ничего не делать в ожидании автобуса или маршрутки на остановке, любой пацан, мимо проходящий тебя чуть заденет и упадешь ты... равновесие соблюдать то нелья... ты ж сам себе установку дал... ничего не делать... сам себе запретил... в том то и дело, что нужно определиться, а что же такое когда "программа чего-то делает"... особенно что такое это "чего-то"...
homm (2007-12-05 23:28:00) [2]> [38] Алексей11 (05.12.07 23:17)
> ну млин написали сколько вроде вот в консоли на серваке
> на пхп просто
писали русском языке бы лучше да не ага поллитры в саду он причем сорок два
Юрий Зотов (2007-12-05 23:24:00) [3]> Алексей11 (05.12.07 23:17) [38]
В консоли и на винде то же самое. А вот если не в консоли, а в окне - так ведь ему же, этому окну, перерисовываться иногда нужно (например, когда по нему другое окно таскают). А если окно в этот момент в слипе висит, то как оно перерисуется? Никак. Пока слип не кончится.
Поэтому все и сложнее.
Алексей11 (2007-12-05 23:17:00) [4]homm тогда сорри!
ну млин написали сколько вроде вот в консоли на серваке на пхп просто
делаем гет запрос
парсим куку из ответа
ждем 15 сек через слип
делаем второй запрос с нашей кукой
а на винде без поллитра не разберешься, буду читать что вы тут понаписали, спасибо)
Игорь Шевченко (2007-12-05 17:23:00) [5]Некрасиво такие вопросы задавать
homm (2007-12-05 17:02:00) [6]> [34] Denis__ © (05.12.07 17:00)
> Программа ничего не делает?
Делает. Ожидает. А я как написал?
homm (2007-12-05 17:01:00) [7]> [34] Denis__ © (05.12.07 17:00)
> Меня больше интересует, как реализована задержка.
Реализована где? В функции Sleep()? Все просто, диспетчер процессов не дает квант времени процессу, пока не истечет таймаут.
Denis__ (2007-12-05 17:00:00) [8]
> procedure SleepExEx(MSec: DWORD);
> var T: DWORD;
> begin
> T := GetTickCount;
> while GetTickCount - T < MSec do begin
> sleep(10);
> Application.ProcessMessages;
> end;
> end;
Программа ничего не делает? А выполнение цикла?
> Если вы считаете себя очень опытным то что вы тут делаете,
> советуете мне разобраться с букварем?
Советовал не я, но разобраться не мешает, тут тёзка прав :)
> Dennis I. Komarov © (05.12.07 16:37) [26]
> > А что делает программа, когда стоит sleep() ?
>
> см. [12] :)
Меня больше интересует, как реализована задержка.
Gydvin (2007-12-05 16:54:00) [9]
> homm © (05.12.07 16:39) [27]
Пока писал... )
Gydvin (2007-12-05 16:52:00) [10]
> ПРавда зчем это делать - ума не приложу.
Ну например, при циклическом вызове определенной функции возвращающей результат в зависимости от внешних факторов (при условии, что она когданить вернет нужный тебе результат). И чтоб не кушать процессорное время ставят туда sleep и ProcessMessages. Этакий ожидающий цикл.
Сергей М. (2007-12-05 16:42:00) [11]
> Алексей11 (05.12.07 16:36) [25]
Новичку следует, прежде всего, усвоить, что в мультизадачной системе приложение "ничего не делает" только тогда, когда "спят" все существующие кодовые потоки процесса этого приложения.
homm (2007-12-05 16:41:00) [12]> [25] Алексей11 (05.12.07 16:36)
> Если вы считаете себя очень опытным то что вы тут делаете,
> советуете мне разобраться с букварем?
Какие мы нежные. Про букварь вообще не тебе сказано было (но в твой адресс, естественно).
Dennis I. Komarov (2007-12-05 16:40:00) [13]> Во первых это нарушает правила,
???
> во вторых просто не красиво
Еще один :)
> Откуда вам знать что я умею и чем я знаимаюсь?
см. [0]
homm (2007-12-05 16:40:00) [14]> [24] Denis__ © (05.12.07 16:36)
> А что делает программа, когда стоит sleep()
Ничего не делает.
homm (2007-12-05 16:39:00) [15]> [22] Denis__ © (05.12.07 16:26)
> Вы тоже правы:), но
Что но?
procedure SleepExEx(MSec: DWORD);
var T: DWORD;
begin
T := GetTickCount;
while GetTickCount - T < MSec do begin
sleep(10);
Application.ProcessMessages;
end;
end;
И программа в ожидании, и пользователь работает, и загрузка процессора нулевая. Всем кайф.
Dennis I. Komarov (2007-12-05 16:37:00) [16]> А что делает программа, когда стоит sleep() ?
см. [12] :)
Алексей11 (2007-12-05 16:36:00) [17]Это раздел форума для новичков.
Если вы считаете себя очень опытным то что вы тут делаете, советуете мне разобраться с букварем? Во первых это нарушает правила, во вторых просто не красиво. Откуда вам знать что я умею и чем я знаимаюсь? Неприятно.
Denis__ (2007-12-05 16:36:00) [18]и вообще... Стреляли! если выполняется цикл, то что, значит программа ничего не делает? :) Это ведь очень интересный вопрос! А что делает программа, когда стоит sleep() ?
Dennis I. Komarov (2007-12-05 16:32:00) [19]> [22] Denis__ © (05.12.07 16:26)
>
> >
> > Нафиг цикл, если есть Sleep?
>
> Вы тоже правы:), но Юрий Зотов © (05.12.07 15:51) [12]
И что?
> [0] Алексей11 (05.12.07 14:37)
> Подскажите как сделать чтобы программа ничего не делала
> n секунд.
Denis__ (2007-12-05 16:26:00) [20]
>
> Нафиг цикл, если есть Sleep?
Вы тоже правы:), но Юрий Зотов © (05.12.07 15:51) [12]