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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DELPHI下的多執行緒程式設計(1) (轉)執行緒程式設計
- Linux下的多執行緒程式設計(轉)Linux執行緒程式設計
- 多執行緒程式設計(轉)執行緒程式設計
- .NET多執行緒程式設計(1):多工和多執行緒 (轉)執行緒程式設計
- .NET多執行緒程式設計(3):執行緒同步 (轉)執行緒程式設計
- Linux下的多執行緒程式設計Linux執行緒程式設計
- POSIX執行緒程式設計起步(2)-執行緒同步 (轉)執行緒程式設計
- .NET多執行緒程式設計(4):執行緒池和非同步程式設計 (轉)執行緒程式設計非同步
- 多執行緒程式設計執行緒程式設計
- iOS多執行緒程式設計總結(下)iOS執行緒程式設計
- Java程式中的多執行緒(2)(轉)Java執行緒
- Linux系統下的多執行緒程式設計入門(轉)Linux執行緒程式設計
- Java多執行緒程式設計入門(轉)Java執行緒程式設計
- Posix執行緒程式設計指南(2)-執行緒私有資料 (轉)執行緒程式設計
- JavaScript多執行緒程式設計JavaScript執行緒程式設計
- Boost多執行緒程式設計執行緒程式設計
- UNIX多執行緒程式設計執行緒程式設計
- java多執行緒程式設計chap1-2Java執行緒程式設計
- 程式設計思想之多執行緒與多程式(2):執行緒優先順序與執行緒安全程式設計執行緒
- 程式設計思想之多執行緒與多程式(3):Java 中的多執行緒程式設計執行緒Java
- 多執行緒程式設計基礎(一)-- 執行緒的使用執行緒程式設計
- 多執行緒程式設計,處理多執行緒的併發問題(執行緒池)執行緒程式設計
- 深入淺出Java多執行緒程式設計(轉)Java執行緒程式設計
- 使用執行緒池優化多執行緒程式設計執行緒優化程式設計
- iOS多執行緒程式設計:執行緒同步總結iOS執行緒程式設計
- Linux下應用程式開發:QT中的多執行緒程式設計(轉)LinuxQT執行緒程式設計
- [短文速讀 -5] 多執行緒程式設計引子:程式、執行緒、執行緒安全執行緒程式設計
- 程式設計思想之多執行緒與多程式(4):C++ 中的多執行緒程式設計執行緒C++
- 多執行緒程式設計基礎(二)-- 執行緒池的使用執行緒程式設計
- C#多執行緒程式設計(1):執行緒的啟動C#執行緒程式設計
- python 多執行緒程式設計Python執行緒程式設計
- Python多執行緒程式設計Python執行緒程式設計
- GCD 與多執行緒程式設計GC執行緒程式設計
- IOS多執行緒程式設計:概述iOS執行緒程式設計
- C#多執行緒程式設計C#執行緒程式設計
- linux 多執行緒程式設計Linux執行緒程式設計
- 網路程式設計基礎,多執行緒下載程式設計執行緒
- python多執行緒程式設計2—執行緒的建立、啟動、掛起和退出Python執行緒程式設計