【DELPHI】线程相关

//准备让线程调用的测试函数

procedure Draw(aCanvas: TCanvas; X,Y: Integer; aCount: Integer = 100000);

var

  i: Integer;

begin

  for i := 0 to aCount do

  begin

    aCanvas.Lock;

    aCanvas.TextOut(X, Y, IntToStr(i));

    aCanvas.Unlock;

  end;

end;

 

//同步执行

procedure TForm1.Button1Click(Sender: TObject);

begin

  TThread.CreateAnonymousThread(procedure begin Draw(Canvas, 50, 10); end).Start;

  TThread.CreateAnonymousThread(procedure begin Draw(Canvas, 50, 30); end).Start;

  TThread.CreateAnonymousThread(procedure begin Draw(Canvas, 50, 50); end).Start;

  TThread.CreateAnonymousThread(procedure begin Draw(Canvas, 50, 70); end).Start;

  TThread.CreateAnonymousThread(procedure begin Draw(Canvas, 50, 90); end).Start;

end;

 

//顺序执行

procedure TForm1.Button2Click(Sender: TObject);

begin

  TThread.Queue(nil, procedure begin Draw(Canvas, 150, 10); end);

  TThread.Queue(nil, procedure begin Draw(Canvas, 150, 30); end);

  TThread.Queue(nil, procedure begin Draw(Canvas, 150, 50); end);

  TThread.Queue(nil, procedure begin Draw(Canvas, 150, 70); end);

  TThread.Queue(nil, procedure begin Draw(Canvas, 150, 90); end);

end;

 

你可能感兴趣的:(Delphi)