Hobbycoder hat mich auf den richtigen Weg gebracht, wobei mir nicht so ganz kar ist warum fListe=liste;
mir früher oder später Ärger bereiten sollte, wenn sicher ist, daß nicht mehrere Threads gleichzeitig zugreifen.
Ich meinte jetzt nicht explizit in diesem Fall, sondern eher im allgemeinen.
Ich kenn ja deinen Restcode nicht. Wenn alles wirklich synchronisiert abläuft, dann sollte es ja gehen. Trotzdem versuch ich sowas zu vermeiden. Schon allein, der Wiederverwendbarkeit halber.
Ein synchronisierter Zugriff auf Daten außerhalb des Thread ist ja nicht unüblich, und letztlich spielt es dabei ja keine Rolle ob es sich bei dem Object um eine Stringlist handelt, ein
GUI-Object oder sonst irgendeine Variable, solange es synchronisiert abläuft.
Interessant wird das allerdings beim Debuggen, wenn der Inhalt der Liste von verschiedenen Threads verändert wird. Aber wie gesagt, das hängt natürlich stark von dem Restcode ab.
Und Last-but-not-least, ist das mit dem Freigeben gerade in größeren Projekten so eine Sache, wenn man auf Objecte zugreift, deren Existenz nicht in der Kontrolle des zugreifenden Thread liegt. Entweder es wird einem mal das Object unter dem Arsch weggezogen oder es bleiben Speicherleichen zurück. Das muss zwar nicht grundsätzlich so sein, aber in großen Projekten kommt das schneller vor, als man denkt. Und im zweiten Fall kommt es ja noch nicht mal zu einer
Exception.