Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.177 Beiträge
 
Delphi 12 Athens
 
#50

AW: Synchronize mit Argumenten

  Alt 10. Aug 2011, 18:28
Ne, SyncError muss eine Klassenmethode sein
Jupp, original mußte es so sein, aber seit den Generics gibt es ein zweites Synchronize, welches Prozeduren, Methoden, diese komischen Inline-Prozeduren (innerhalb einer anderen Prozedur/Methode, deren Name ich ständig vergesse) oder gar anonyme Methoden entgegennimmt.

Da kann man dann auch so kranke Sachen machen, wie eben dieses
Delphi-Quellcode:
var
  X: String;
begin
  X := 'Hallo Welt!';
  Synchronize(procedure
    begin
      ShowMessage(X);
    end);
end;
Geht aber erst seit D2009/D2010.
Aus einer TThread-Methode heraus und das in #41 geht überall.

Wenn man etwas nur an dieser Stelle synchronisieren will, dann finde ich es so viel übersichtlicher, da der Code dort steht, wo er aufgerufen wird.
Wird genügend Code an mehreren Stellen aufgerufen, dann natürlich immernoch die getrennte Methode,
wobei man in diesem Synchronize-Bereich auch eine Methode, mit Parametern, aufrufen kann.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (10. Aug 2011 um 18:35 Uhr)
  Mit Zitat antworten Zitat