L
labixiaoxin
Unregistered / Unconfirmed
GUEST, unregistred user!
有几个概念性问题:
在一个程序中只有这么一段代码:
procedure TForm1.Button1Click(Sender: TObject);
var
i,jinteger;
begin
for i := 1 to 1000000000 do
j := i;
end;
1、个程序中,所谓的主线程是一个什么东西,在我们按下BUTTON1前,它在做什么?
2、我拉按下BUTTON1会生成一个消息,消息被系统响应后会开始执行里面的一个长循环,执行这个循环的过程是属于在主线程中执行的还是在另一个线程中执行的(我并没有建立一个别的线程)?或者说是主线程在执行过程中被打断,中间被插上这个长循环的过程吗?主线程与这个长循环在时间上怎么分配?
3、若我把上面那个长循环的地方(或主线程中)换成WaitForSingleObject(*,10000)来等待*事件的发生,那么在这个等待10秒的过程中,系统还能响应其它消息(或做其它事如处理其它按键的代码)吗(这里可没有用到application.ProcessMessages;)?
在一个程序中只有这么一段代码:
procedure TForm1.Button1Click(Sender: TObject);
var
i,jinteger;
begin
for i := 1 to 1000000000 do
j := i;
end;
1、个程序中,所谓的主线程是一个什么东西,在我们按下BUTTON1前,它在做什么?
2、我拉按下BUTTON1会生成一个消息,消息被系统响应后会开始执行里面的一个长循环,执行这个循环的过程是属于在主线程中执行的还是在另一个线程中执行的(我并没有建立一个别的线程)?或者说是主线程在执行过程中被打断,中间被插上这个长循环的过程吗?主线程与这个长循环在时间上怎么分配?
3、若我把上面那个长循环的地方(或主线程中)换成WaitForSingleObject(*,10000)来等待*事件的发生,那么在这个等待10秒的过程中,系统还能响应其它消息(或做其它事如处理其它按键的代码)吗(这里可没有用到application.ProcessMessages;)?