Текущий архив: 2002.02.04;
Скачать: CL | DM;
ВнизПроцедура Delay Найти похожие ветки
← →
Eraser (2002-01-21 12:34) [0]Люди подкажите почему данная процедура не работает в TThread (цикла нет выполняется толко 1 раз вне зависимости от того сколько msecs) , хотя в обычной форме все выпллняется:
procedure TMicro1Thread.Delay(msecs : Longint);
var
FirstTick : longint;
begin
FirstTick:=GetTickCount;
repeat
Application.ProcessMessages;
until GetTickCount-FirstTick >= msecs;
end;
← →
Dimka Maslov (2002-01-21 12:48) [1]В потоке не нужен Application.ProcessMe
← →
Eraser (2002-01-21 12:50) [2]мне нужно сделать задержку на 50 мс (если через sleep -тоже самое)
← →
Dimka Maslov (2002-01-21 13:00) [3]А ты откуда процедуру Delay вызываешь?
← →
Eraser (2002-01-21 13:02) [4]procedure TMicro3Thread.Execute;
begin
<что-то>
delay(50);
<что-то>
end;
← →
Digitman (2002-01-21 13:02) [5]Используй 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:04) [6]А задержку чего на на 50мс ты хочешь сделать? Потока TMicro3Thread или основного потока приложения?
← →
Eraser (2002-01-21 14:19) [7]>Dimka
потока Tmicro3Thread
И еще если пробую delay(100) и более то все работает
← →
Dimka Maslov (2002-01-21 15:23) [8]50мс слишком маленькое время, по этому сразу срабатывает условие выхода из цикла
← →
Eraser (2002-01-21 15:26) [9]но ведь если нет поотка то все работает
Страницы: 1 вся ветка
Текущий архив: 2002.02.04;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.004 c