我在线程中的程序为
  i:=0;
  while not Terminated do begin
    while i<=5 do begin
      Form1.finish:=false;
      t:=StrToInt(Form1.Edit5.Text);//窗口输入的数据
      Form1.FBeamUp(Form1.t);
                      //一个串口通信的函数,当执行完成Form1.finish =  true
                       ,但执行完成需要一定的时间
      while not Form1.finish do
        Application.ProcessMessages;
      i:=i+1;
    end
  end;
我的本意是希望是串口实现5次,但是具体实现的结果是,还没有等上一次的串口执行完成,下一次的串口通信又开始了,Application.ProcessMessages好象不起什么作用,但是单步调试的时候,又完全符合我的要求,有什么办法能解决这个问题,是不是线程由计算机直接分配时间段原因,我知道这个问题有些复杂,但是迫切希望高手们行行好,帮帮我吧!