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

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

Процедура Delay [D5]


Eraser ©   (2002-01-21 12:34:00) 

Люди подкажите почему данная процедура не работает в TThread (цикла нет выполняется толко 1 раз вне зависимости от того сколько msecs) , хотя в обычной форме все выпллняется:

procedure TMicro1Thread.Delay(msecs : Longint);
var
FirstTick : longint;
begin
FirstTick:=GetTickCount;
repeat
Application.ProcessMessages;
until GetTickCount-FirstTick >= msecs;
end;


Eraser   (2002-01-21 15:26:00) [1]

но ведь если нет поотка то все работает


Dimka Maslov   (2002-01-21 15:23:00) [2]

50мс слишком маленькое время, по этому сразу срабатывает условие выхода из цикла


Eraser   (2002-01-21 14:19:00) [3]

>Dimka
потока Tmicro3Thread

И еще если пробую delay(100) и более то все работает


Dimka Maslov   (2002-01-21 13:04:00) [4]

А задержку чего на на 50мс ты хочешь сделать? Потока TMicro3Thread или основного потока приложения?


Eraser   (2002-01-21 13:02:00) [5]

procedure TMicro3Thread.Execute;
begin
<что-то>
delay(50);
<что-то>
end;


Digitman   (2002-01-21 13:02:00) [6]

Используй SleepEx

The SleepEx function causes the current thread to enter a wait state until one of the following occurs:

· An I/O completion callback function is called
· An asynchronous procedure call (APC) is queued to the thread.
· The time-out interval elapses



DWORD SleepEx(

DWORD dwMilliseconds, // time-out interval in milliseconds
BOOL bAlertable // early completion flag
);


Dimka Maslov   (2002-01-21 13:00:00) [7]

А ты откуда процедуру Delay вызываешь?


Eraser   (2002-01-21 12:50:00) [8]

мне нужно сделать задержку на 50 мс (если через sleep -тоже самое)


Dimka Maslov   (2002-01-21 12:48:00) [9]

В потоке не нужен Application.ProcessMe


Наверх

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