多線程相關內容:
定義線程類: 從 TThread 類繼承.
必須override 方法 Execute;
構造函數:
constructor TMyThread.Create(CreateSuspended: Boolean);
begin
inherited Create(CreateSuspended); // 基類的構造函數
Priority := tpIdle; // 優先權 : tpNormal , tpIdle-- 優先權最低
end;
與其它線程的同步:
procedure TMyThread.PushTheButton;
begin
Button1.Click;
end;
procedure TMyThread.Execute;
begin
...
Synchronize(PushTheButton); // 等待主線程進入消息循環隊列處理傳遞的方法.
...
end;
異常處理:
procedure TMyThread.Execute;
begin
try
while not Terminated do
PerformSomeTask;
except
{ do something with exceptions }
end;
end;
事件: OnTerminate , 線程收尾處理.
同步方法:
1. Lock , UnLock 對象. TCanvas 類;
2. 使用臨界區(邊界): 每次只有一個線程執行臨界區裡的代碼;
...