Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: TThreadStringList

  Alt 10. Mär 2010, 07:44
Eine andere, zwar aufwändigere, aber dafür flexiblere Variante wäre
- direkt von TStringList abzuleiten,
- das FCriticalSection : TCriticalSection; hinzuzufügen
- und dann alles, welches in TStringList und TStrings als Virtual gekennzeichnet ist zu überschreiben

Hat noch den Vorteil, daß es wie eine normale StringListe verwendet werden kann.
Delphi-Quellcode:
procedure TThreadStringList.Lock;
begin
  FCriticalSection.Acquire;
end;

procedure TThreadStringList.Unlock;
begin
  FCriticalSection.Release;
end;

// und dann überall

procedure TThreadStringList.SaveToFile(const FileName: string);
begin
  Lock;
  try
    inherited SaveToFile(FileName);
  finally
    Unlock;
  end;
end;

function TThreadStringList.IndexOf(const S: string): Integer;
begin
  Lock;
  try
    Result := inherited IndexOf(S);
  finally
    Unlock;
  end;
end;
PS: The Generics Stack
also nur zur Info ... in deinem "älteren" Delphi läuft es ja nicht
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat