Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

аналоги Sleep_а [D7, WinXP]


Zhekson ©   (2005-02-07 15:25:00) 

В моей программе нужно периодически выжидать несколько секунд. Sleep не подходит так как не могу засыпает всё... даже кнопки...


_silver   (2005-02-17 13:37:00) [1]

Poirot ©   (07.02.05 18:40) [6]
Не согласен.
QuasiLamo ©   (07.02.05 20:26) [7]
Согласен.


sniknik   (2005-02-17 13:37:00) [2]

> дает чутка процессорного времени другим потокам, чтоб совсем не задохнулись
ну не совсем "чутка", скорее столько сколько получится при изначальном желании дать чуть-чуть. ;о))

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1107888763&n=5

> А что за магический эффект sleep(0)?
вообщето применение слип-а правильно идеологически, а вот в данном конкретном случае "магический эффект" это от неправильного использования, к примеру
 >  Sleep не подходит так как не могу засыпает всё... даже кнопки...
может получится если пытатюся "усыпить" поток в синхронизированной функции, в итоге заснет основной.


clickmaker   (2005-02-17 13:22:00) [3]


> Vaitek ©   (17.02.05 13:10) [9]
> А что за магический эффект sleep(0)?

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


Amoeba   (2005-02-17 13:11:00) [4]

Delay из RxLib/JVCL


Vaitek   (2005-02-17 13:10:00) [5]

А что за магический эффект sleep(0)?


Kerk   (2005-02-07 23:43:00) [6]

Zhekson   (07.02.05 15:25)
Sleep не подходит так как не могу засыпает всё... даже кнопки...


Спят усталые игрушки,
Кнопки спят.... :)


QuasiLamo   (2005-02-07 20:26:00) [7]

_silver ©   (07.02.05 17:04) [3]
надо в цикл вставить хотя бы sleep(0), а то сильно ресурсы хавать будет.


Poirot   (2005-02-07 18:40:00) [8]

ТОгда поток пользуй и в нём слиип.

_silver ©   (07.02.05 17:06) [4]
Имхо тут не только форма может повиснуть но и всё ося...


Zhekson   (2005-02-07 17:07:00) [9]

Таймер мне помог...
спасибо.


_silver   (2005-02-07 17:06:00) [10]

_silver ©   (07.02.05 17:04) [3]
procedure _sleep(tick : DWORD);

var
  t : DWORD;
begin
 t := GetTickCount + tick;
 while GetTickCount < t do
   Application.ProcessMessages;
end;


_silver   (2005-02-07 17:04:00) [11]

procedure _sleep(tick : DWORD);
begin
  t := GetTickCount + tick;
  while GetTickCount < t do
    Application.ProcessMessages;
end;

Засыпать будет не ровно на tick милисекунд, но может подойдёт.


sniknik   (2005-02-07 15:46:00) [12]

таймер (TTimer)
(хотя это и не аналог, но это именно то что тебе нужно)

либо цикл с тем же Sleep-ом поделенным на временные отрезки перемежаемые Application.ProcessMessages

либо загнать все свои "вычисления"(?) в отдельный поток.


SammIk   (2005-02-07 15:39:00) [13]

Дык тогда тебе ничего не поможет))
Узай потоки.


Наверх

Титульная страница Поиск, карта сайта Написать письмо