请教编程高手-关于DELPHI主线程

在接触多线程编程后我反过来想到,DELPHI的主线程是怎么工作的__在窗体建立后,主线程是进入了一个和子线程类似的whilenotterminated循环或是把自己挂起了... 在接触多线程编程后我反过来想到,DELPHI的主线程是怎么工作的__
在窗体建立后,主线程是进入了一个和子线程类似的
while not terminated循环或是把自己挂起了,或是在其他什么状态?
它是怎么对消息队列或者APC队列做出反应的?
谢谢楼下的回答,我去看了下,看到IDLE(message)就无法更深入了,能大概知道这个idle()在干什么吗?
展开
 我来答
百度网友6c2079901
2010-06-10 · TA获得超过229个赞
知道小有建树答主
回答量:127
采纳率:0%
帮助的人:0
展开全部
主线程程始终是在执行一个消息处理循环代码的,一个应用程序主线程是通过
Application.Run过程启动的, 楼主打开Application.Run实现过程可以看到具体实现:
procedure TApplication.Run;
begin
FRunning := True;
try
AddExitProc(DoneApplication);
if FMainForm <> nil then
begin
case CmdShow of
SW_SHOWMINNOACTIVE: FMainForm.FWindowState := wsMinimized;
SW_SHOWMAXIMIZED: MainForm.WindowState := wsMaximized;
end;
if FShowMainForm then
if FMainForm.FWindowState = wsMinimized then
Minimize else
FMainForm.Visible := True;
repeat //---->>消息循环开始
try
HandleMessage; // 此过程又是调用ProcessMessage,如果消息队列中没有消息,则进入空闲状态 Idle(Msg);
except
HandleException(Self);
end;
until Terminated;
end;
finally
FRunning := False;
end;
end;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式