Zitat von
igel457:
TList etc. verwalten intern ein Array. Beim (lesenden) Zugriff auf "Items" wird nur der Inhalt des Arrays zurückgegeben, sonst wird nichts gemacht. Lesender Zugriff auf TList und Verwandte davon ist Threadsicher.
Das ist eine gefährliche Aussage.
Wenn dein Thread die TList exklusiv verwendet ist das kein Problem.
Wird die TList allerdings von zwei Threads verwendet...
Ich habe die Implementierung momentan nicht vor mir liegen, aber TList wird nicht beim
Zugriff gesperrt.
Da die Liste vermutlich auch mit Elementen gefüllt wird (sonst ist sie sinnlos), muss also irgendetwas auch
schreibenden Zugriff haben. Und wenn dieses Etwas zufällig ein Element entfernt, während der Thread
liest, dann heißt es Daumen drücken.
Dafür gibt es extra eine Implementierung von TThreadList, welche intern eine TList verwendet und bei Zugriffen
sperrt.
Zitat von
jbg:
Zitat von
Win32.API:
Genau, da ich aber den Source fuer die Generics nicht besitze
Wie denn das? Alle Editionen kommen mit dem Quellcode der
RTL und
VCL.
Ich glaube die Personal Editions lieferten den Code nicht mit.
Aber das wird
Win32.API sicherlich nicht in der Arbeit verwenden. :}