Thema: Delphi Event in Thread

Einzelnen Beitrag anzeigen

Hobbycoder

Registriert seit: 22. Feb 2017
961 Beiträge
 
#1

Event in Thread

  Alt 11. Mär 2017, 15:40
Hi,

ich stelle mir grad folgende Frage: Ich könnte ja in einem Thread auch ein Event hinzufügen. Als Beispiel so
Delphi-Quellcode:
type
  TOnSendAnMain=procedure(Sender: TObject; Irgendwas: string) of object;

  TMyThread=class(TThread)
  private
    FOnSendAnMain: TOnSendAnMain;
    procedure DoSendAnMain(Irgendwas: string);
  published
    property OnSendAnMain: TOnSendAnMain read FOnSendAnMain write FOnSendAnMain;
  public
    ...
  end;
wie müsste die procedure DoSendAnMain aussehen?

So
Delphi-Quellcode:
procedure TMyThead.DoSendAnMain(Irgendwas: string);
begin
  if Assigned(FOnSendAnMain) then
    FOnSendAnMain(self, Irgendwas);
end;
oder so:
Delphi-Quellcode:
procedure TMyThead.DoSendAnMain(Irgendwas: string);
begin
  if Assigned(FOnSendAnMain) then
    Synchronize(FOnSendAnMain(self, Irgendwas));
end;
Da sich hinter FOnSendAnMain ja eine Procedure aus einem anderen Thread verbirgt (z.B. Hauptthread) müsste der Zugriff ja Synchron erfolgern, oder sehe ich das falsch, oder ist das hier nicht notwendig?

Gruß Hobbycoder
  Mit Zitat antworten Zitat