Потокобезопасный в Delphi

Я должен изменить и изменить некоторые визуальные компоненты в потоке, и, как вы знаете, делать это небезопасно.

Мой вопросКак написать полностью потокобезопасный код? Это возможно? если это так, можете ли вы привести простой пример?

мой код, который не является потокобезопасным:

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;

Спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос