DELPHI下的多執行緒程式設計(2) (轉)
DELPHI下的多執行緒程式設計(2) (轉)[@more@]下的多執行緒設計(2)
end;
end;
procedureTBounceThread.Execute;
begin
WhilenotTenateddo
begin
Synchronize(MoveShape);
end;
end;
constructorTBounceThread.Create(Suspended:Boolean;Shape:TShape;XSpeed,YSpeed:Integer);
begin
inheritedCreate(Suspended);
FShape:ΚShape;
FXSpeed:ΚXSpeed;{X軸走向的速度}
FYSpeed:ΚYSpeed;{Y軸走向的速度}
FreeOnTerminate:ΚTrue;
end;
end.
這是一個多執行緒的碰碰球遊戲,你可以有多個不同的球,它們分屬不同的執行緒,各自獨立的在螢幕上碰撞。顯然,由於多個球執行的顯示會同時操作VCL資源,為了,我們在Execute過程中的部分加入了Synchronize(MoveShape)來Move?Shape過程,實際上,在任何需要操作VCL資源的地方,例如窗體、點陣圖,都應加入Synchronize呼叫。
執行時我們可以新建一個程式,然後在USES部分加入以上的BncThrd單元,再在它的窗體FORM1上加入兩個ShapeShape1和Shape2,Shape1可以是一個矩形而Shape2是一個圓。加入以下的程式碼就可以讓矩形和圓動起來。
procedureTForm1.Button1Click(Sender:T);
begin
TBounceThread.Create(False,Shape1,1,2);
TBounceThread.Create(False,Shape2,2,3);
end;
end;
end;
procedureTBounceThread.Execute;
begin
WhilenotTenateddo
begin
Synchronize(MoveShape);
end;
end;
constructorTBounceThread.Create(Suspended:Boolean;Shape:TShape;XSpeed,YSpeed:Integer);
begin
inheritedCreate(Suspended);
FShape:ΚShape;
FXSpeed:ΚXSpeed;{X軸走向的速度}
FYSpeed:ΚYSpeed;{Y軸走向的速度}
FreeOnTerminate:ΚTrue;
end;
end.
這是一個多執行緒的碰碰球遊戲,你可以有多個不同的球,它們分屬不同的執行緒,各自獨立的在螢幕上碰撞。顯然,由於多個球執行的顯示會同時操作VCL資源,為了,我們在Execute過程中的部分加入了Synchronize(MoveShape)來Move?Shape過程,實際上,在任何需要操作VCL資源的地方,例如窗體、點陣圖,都應加入Synchronize呼叫。
執行時我們可以新建一個程式,然後在USES部分加入以上的BncThrd單元,再在它的窗體FORM1上加入兩個ShapeShape1和Shape2,Shape1可以是一個矩形而Shape2是一個圓。加入以下的程式碼就可以讓矩形和圓動起來。
procedureTForm1.Button1Click(Sender:T);
begin
TBounceThread.Create(False,Shape1,1,2);
TBounceThread.Create(False,Shape2,2,3);
end;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-975749/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python 多執行緒程式設計Python執行緒程式設計
- JavaScript多執行緒程式設計JavaScript執行緒程式設計
- Python多執行緒程式設計Python執行緒程式設計
- java多執行緒程式設計chap1-2Java執行緒程式設計
- 多執行緒程式設計基礎(一)-- 執行緒的使用執行緒程式設計
- [短文速讀 -5] 多執行緒程式設計引子:程式、執行緒、執行緒安全執行緒程式設計
- 多執行緒程式設計基礎(二)-- 執行緒池的使用執行緒程式設計
- 多執行緒程式設計ExecutorService用法執行緒程式設計
- 29. 多執行緒程式設計執行緒程式設計
- 多執行緒程式設計的核心思想執行緒程式設計
- Java多執行緒程式設計筆記2:synchronized同步方法Java執行緒程式設計筆記synchronized
- 多執行緒程式設計總結:一、認識多執行緒本質執行緒程式設計
- 深入淺出Win32多執行緒程式設計--之MFC的多執行緒Win32執行緒程式設計
- 深入理解多執行緒程式設計執行緒程式設計
- [02] 多執行緒邏輯程式設計執行緒程式設計
- Linux C++ 多執行緒程式設計LinuxC++執行緒程式設計
- iOS開發-多執行緒程式設計iOS執行緒程式設計
- Task+ConcurrentQueue多執行緒程式設計執行緒程式設計
- C#多執行緒程式設計實戰1.1建立執行緒C#執行緒程式設計
- C#多執行緒程式設計-基元執行緒同步構造C#執行緒程式設計
- 【多執行緒高併發程式設計】二 實現多執行緒的幾種方式執行緒程式設計
- Java多執行緒程式設計—鎖優化Java執行緒程式設計優化
- 多執行緒程式設計相關理論執行緒程式設計
- 多執行緒併發程式設計“鎖”事執行緒程式設計
- 使用Java實現多執行緒程式設計Java執行緒程式設計
- C語言 之 多執行緒程式設計C語言執行緒程式設計
- Java-基礎程式設計-多執行緒Java程式設計執行緒
- 執行緒以及多執行緒,多程式的選擇執行緒
- Java多執行緒(2)執行緒鎖Java執行緒
- java多執行緒程式設計:你真的瞭解執行緒中斷嗎?Java執行緒程式設計
- 多執行緒,多程式執行緒
- iOS多執行緒程式設計三:Operation和OperationQueueiOS執行緒程式設計
- Java多執行緒程式設計筆記9:ReentrantReadWriteLockJava執行緒程式設計筆記
- c++多執行緒程式設計:C2672C++執行緒程式設計
- Linux多執行緒伺服器端程式設計Linux執行緒伺服器程式設計
- java多執行緒程式設計chap3-4Java執行緒程式設計
- java多執行緒程式設計chap5-7Java執行緒程式設計
- https多執行緒下載程式碼HTTP執行緒
- 多執行緒下的list執行緒