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