Einzelnen Beitrag anzeigen

Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Critical Section bei TStringList.Add?

  Alt 4. Dez 2004, 09:43
Generell: Ja.
Denn stell dir folgendes Szenario vor:

Thread A liest die Einträge der Liste aus und speichert sie in eine Datei. Dann kommt Thread B zum Zuge und fügt ein Element an. Dann schreibt Thread A die Einträge in eine Listbox.
Die Folge: Zwei Anweisungen auf die Liste, die aus Sicht des Threads A direkt hintereinander ausgeführt werden, greifen auf zwei unterschiedliche Listen zu!

Je nachdem wie dein Programm aufgebaut ist, kann das egal sein, aber in aller Regel ist es nicht. Und wenn du sowas nicht synchronisierst und irgendwo einen Fehler hast, dan suchst du dich dumm und dämlich und findest ihn nicht. Mach das Schreiben also ruhig in eine Critical Section rein. Performancem#ßig verlierste da auch nix, das das Schreiben innerhalb weniger Takte erledigt sein sollte.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat