Hilo seguro en Delphi

Tengo que modificar y cambiar algunos componentes visuales en un hilo y como saben, no es seguro hacerlo.

Mi pregunta es¿Cómo escribir un código completamente seguro para subprocesos? ¿Es posible? Si es así, ¿podría por favor darme un ejemplo simple?

Mi código que no es seguro para subprocesos:

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;

Gracias.

Respuestas a la pregunta(3)

Su respuesta a la pregunta