2013-06-22 11:46:23| 分类: delphi xe4 | 标签: |举报 |字号大中小 订阅
TThread.CreateAnonymousThread(); //普通 TThread.Queue(); //队列 TThread.Synchronize(); //VCL 同步
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 ; |
评论