![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание отдельной нити, но не простой...
SPeller © (2003-05-11 14:24:00)Всем доброго времени суток!
У меня встала необходимость создать в своей программе нить (Thread), которая будет висеть постоянно и обрабатывать посылаемые из главного потока команды. Слышал я о такой функции, как PostThreadMessage, которая шлёт сообщение потоку и не требует наличия в потоке окна. Так вот, хочу спросить, как мне обустроить получение и обработку таких сообщений отдельным потоком, как заставить поток ждать сообщение (чтобы не загружать процессор циклом), как всё это дело грамотно реализовать. За полезные примеры буду очень благодарен.
Polevi (2003-05-11 19:22:00) [1].. или GetMessage
procedure TT.Execute;
var
msg:TMsg;
begin
while not Terminated do
begin
GetMessage(msg,0,0,0);
case msg.message of
WM_QUIT:Terminate;
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
t:=TT.Create(false);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
PostThreadMessage(T.ThreadID,WM_QUIT,0,0);
end;
Polevi (2003-05-11 19:08:00) [2]MsgWaitForMultipleObjects