|
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; |
原文:http://www.cnblogs.com/lifelog/p/3517445.html