Einzelnen Beitrag anzeigen

Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#3

AW: Allgemeine Fragen zu Thread-Safety

  Alt 18. Jul 2011, 14:10
5. Nicht (unbedingt) threadsichere Methoden: Ich habe gerade einen Konstruktor geschrieben, der die Format-Methode nutzt. Ich weiß ja pauschal nicht, ob diese Methode threadsafe ist oder nicht. Daher hätte ich dann diesen Code ...
Delphi-Quellcode:
constructor TMyObject.Create(const AFormat: string; const Args: array of const);
begin
  inherited Create();
  FMessage := Format(AFormat, Args);
end;
... wie folgt umgeschrieben. Dieses Problem ist ja auch auf jede andere beliebige Methode "anwendbar" und nich auf Konstruktoren beschärnkt.
Delphi-Quellcode:
constructor TMyObject.Create(const AFormat: string; const Args: array of const);
begin
  inherited Create(); // Erzeugt eine CriticalSection, da von
                      // entsprechender Basisklasse abgeleitet
  Lock();
  try
    FMessage := Format(AFormat, Args);
  finally
    Unlock();
  end;
end;
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat