我要修改和改變線程一些可視化組件,正如你知道這是不是安全的這樣做。線程安全的德爾福
我的問題是如何編寫完全線程安全的代碼?這可能嗎?如果是的話可以請給我一個簡單的例子嗎?
我的代碼不是線程安全的:
type
tMyWorkerThread = class(TThread)
public
procedure Execute; override;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure tMyWorkerThread.Execute;
begin
//codes
//working with visual components
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TMyWorkerThread.Create(false);
end;
謝謝。
查看[Synchronize](http://docwiki.embarcadero.com/Libraries/XE4/en/System.Classes.TThread.Synchronize) – bummi
使用File-> New-> Other'菜單,選擇'Delphi Projects-> Delphi Files-> Thread Object',並讀取它創建的新單元頂部的*巨大註釋*。 –
*我必須修改和更改一些虛擬組件* 虛擬組件或可視組件? 什麼樣的更新?進度條可以很容易地從主線程完成,而工作人員trreads只會報告他們的工作 - 這是在幾行代碼 –