Ah, das mit der implizite Referenzzählung bei Strings wusste ich gar nicht
Mein AssignTo ist ganz Trivial:
Delphi-Quellcode:
procedure TUser.AssignTo(Dest: TObject);
begin
if Dest is TUser then
begin
(Dest as TUser).guid:=Self.Fguid;
(Dest as TUser).Name:=Self.FName;
(Dest as TUser).LoggedOn:=Self.FLoggedOn;
(Dest as TUser).Calls:=Self.FCalls;
(Dest as TUser).Sales:=Self.FSales;
end;
end;
Abgesehen davon ist gewinnt dein Beispiel nicht wirklich durch Queue. Da nach dem Synchronize eh nur noch aufgeräumt wird, bringt eine Nebenläufigkeit hier gar nicht so viel.
Es gibt natürlich auch noch Threads, die nicht nur simple Dinge tun, eine längere Laufzeit und auch eine längere Lebensdauer haben. Wo Daten auch mal zwischendurch übergeben werden.
Im Grunde bin ich irgendwo über TThread.Queue gestolpert, und will mir die Funktionweise und Anwendungsmöglichkeiten verdeutlichen bzw. sie dann für mich nutzen.
Soweit funktioniert das mit meinen Events alles so wie ich es möchte, aber vielleicht kann ich es ja auch besser machen.