线程相关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//准备让线程调用的测试函数
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;

线程相关

上一篇:CFile、CStdioFile、FILE和其他文件操作(转)


下一篇:c#连接Redis Redis的安装与配置