Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: stringzugriff - wie könnte ich das regeln

  Alt 27. Dez 2005, 19:31
Solche parallelen Zugriffe must Du kapseln. Windows und damit Delphi bieten Dir diverse Werkzeuge zur Synchronisation. Wenn Du innerhalb eines Prozesses (nicht Thread) darauf zugreifst, reicht eine 'Critical Section'. Ansonsten, also wenn z.B. zwei Prozesse parallel auf etwas zugreifen müssen, dann muss man andere Mechanismen (z.B. Mutexe) verwenden.

Die Unit SyncObjs hält alle Delphi-Objekte bereit, um Dein Problem zu lösen.
Delphi-Quellcode:
Uses ... SyncObjs...;

Var
  MyCS : TCriticalSection;

Procedure ThreadSafeAdd (Var aSrc : String; Const aString);
Begin
  MyCS.Enter;
  Try
    aSrc := aSrc + aString;
  Finally
    MyCS.Leave;
  End;
End;

Initialization
  MyCS := TCriticalSection.Create;
Finalization
  MyCS.Free;
End.
Natürlich sollte man sowas als Klasse 'TThreadSafeString' implementieren.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat