delphi 主线程向子线程发送消息
while True do
begin
if not PeekMessage(msg,0,0,0,PM_REMOVE) then
begin
case MsgWaitForMultipleObjects(1,hCloseEvent,False,INFINITE,QS_ALLINPUT) of
WAIT_OBJECT_0: Break;//hCloseEvent事件已经有效,故结束
WAIT_OBJECT_0+1:Continue;//消息队列中有消息存在
else Break;//其它情况,WM_FAILED或WAIT_ABANDONED_0,表明已经出错,故结束
end;
end else
begin
if WaitForSingleObject(hCloseEvent,0)<>WAIT_TIMEOUT then Break;
case msg.message of
WM_TEST:
begin
//...接到主线程发过来的命令,作相应处理
//...处理完之后,也可以用消息通知主线程
end;
end;
end;
end;
finally
//...作善后处理
end;
- 上一篇 »java线程:守护线程
- 下一篇 »java怎么使用多线程解决主线程提前结束问题?