Einzelnen Beitrag anzeigen

Xeres

Registriert seit: 11. Aug 2008
18 Beiträge
 
#4

Re: Thread. Thread zugriff verweigert 5. Was passiert da??

  Alt 26. Sep 2008, 10:11
Sobald mehrere Client's Daten an den Server senden und er diese in einer Liste verwaltet, musst du sicherstellen, dass nicht 2 Threads gleichzeitig in eine Liste / ein Memo schreiben können. Andersfalls kann es jeder Zeit zu Fehlern kommen.
Dies ist z.B. mit CriticalSections möglich.

Schau dir mal die Klasse TThreadList aus der Classes-Unit an. Diese Kapselt die Klasse TList. Hier wird durch "LockList" und "UnlockList" die CriticalSection erzeugt/geschlossen.
Leider sind die wenigsten Delphi-Klassen Threadsicher.

Selbst IntToStr oder DateTimeToStr schreibt Intern die Werte in eine globale Variable. Dies kann auch zu Fehlern führen, wenn 2 Threads gleichzeitig diese Funktionen nutzen.
Blog von Entwicklern für Entwickler:

http://www.entwicklerforum.org
  Mit Zitat antworten Zitat