Thread-safe en delphi

J'ai modifier et changer certains composants visuels dans un thread et comme vous le savez, il n'est pas sûr de le faire.

Ma question est comment écrire un complètement thread-safe code? Il est possible? si elle est alors pouvez-vous me donner un exemple simple?

mon code qui n'est pas thread-safe:

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;

Merci.

  • jetez un oeil à Synchroniser
  • Utiliser le File->New->Other menu, choisissez Delphi Projects->Delphi Files->Thread Object, et de lire l'énorme commentaire en haut de la nouvelle unité qu'il crée.
  • J'ai modifier et changer certains composant virtuel Virtuel composant ou composant visuel ? Et ce genre de mise à jour ? la barre de progression peut facilement être fait à partir de thread principal, tandis que travailleur trreads serait seulement de faire rapport de leur travail qui est fait en quelques lignes de code
  • double possible de une mise à Jour de composants VCL de CreateAnonymousThread
InformationsquelleAutor Sky | 2013-07-17