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