Форум: "Основная";
Текущий архив: 2003.05.26;
Скачать: [xml.tar.bz2];
ВнизPeekMessage Найти похожие ветки
← →
Sergey (2003-05-13 21:07) [0]Так... у мя вопросик... как использовать енту функцию...
Вот у меня например ожидание какого-то момента
repeat
sleep(500)
until ...
Что и как надо сделать, чтобы в это время программа не "висела"...?
← →
Palladin (2003-05-13 21:17) [1]не использовать sleep
← →
Думкин (2003-05-14 06:52) [2]GetTickCount
Application.ProcessMessages
← →
Sergey (2003-05-14 11:20) [3]Palladin
>не использовать sleep
???
ну допустим...а как тогда мне например сделать ожидание запуска сервиса в течении 20 секунд без нагрузка на проц?
← →
Anatoly Podgoretsky (2003-05-14 11:25) [4]Sergey (14.05.03 11:20)
sleep в отдельном потоке, правда и sleep не обязателен можно WaitFor*
← →
panov (2003-05-14 12:00) [5]Можно и так примерно:
unit uWaitMoment;
uses classes,windows;
const WM_OPPA=WM_USER+1;
type
TWaitOneMoment = class(TThread)
private
fInterval: Cardinal;
fHandleForm: THandle;
protected
procedure Execute; override;
public
constructor Create(aHandleForm: THandle;aInterval: Cardinal);
end;
implementation
constructor TWaitOneMoment.Create(aHandleForm: THandle;aInterval: Cardinal);
begin
inherited Create(True);
fHandleForm := aHandleForm;
fInterval := aInterval;
FreOnTerminate := True;
Priority := tpTimeCritical;
Resume;
end;
procedure TWaitOneMoment.Execute;
var
SleepInterval: Cardinal;
begin
SleepInterval := 50;
while fInterval>0 do
begin
if fInterval<50 then SleepInterval := fInterval;
if Terminated then Break;
Sleep(SleepInterval);
fInterval := fInterval-SleepInterval;
end;
if fInterval<=0 then PostMessage(fHandleForm,WM_OPPA,0,0);
end;
end.
unit ....
uses uWaitMoment;
TForm1=class...
private
procedure OnWM_OPPA(var msg:TMessage);message WM_OPPA;
...
end;
implementation
procedure TForm1.OnWM_OPPA(var msg:TMessage);
begin
ShowMessage("Дождались наконец-то!");
end;
procedure TForm1.ButtonStartClick(Sender: TObject);
begin
...
TWaitOneMoment.Create(Form1.Handle,20000);
end;
...
end.
← →
gek (2003-05-14 12:03) [6]Не, это понятно.
Но, по-моему WaitFor более приемлем
← →
panov (2003-05-14 12:05) [7]WaitFor заблокирует интерфейс пользователю.
← →
gek (2003-05-14 13:46) [8]
> panov © (14.05.03 12:05)
> WaitFor заблокирует интерфейс пользователю.
Честно говоря не встречался. Не знаю...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.05.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c