Ne, Data gehört zu jedem Thread selber der die Funktion aufruft.
D.h. jeder Thread ruft die Funktion auf mit seinen eigenen privat deklariertden Data mit unterschiedlicher länge. Ich bin mir halt nicht sicher, wenn sich schon ein Thread in der Funktion befindet das Result von einem anderen Thread wieder mit dem Result :=''; wieder zurückgesetzt wird. Oder hat jeder Aufruf sein eigenes Result? Oder ob dadurch das High(Data) auch verbogen wird?
Ob High(Data) dort funktioniert kann ich ohne Testen nicht sagen, ich ging davon aus, daß dies nur bei bestimmten Arraytypen geht ... ansonsten sollte es keine Rolle spielen ob verschiedene Threads die gleiche Funktion aufrufen. Funktionen sind nur Code. Die Daten sind entweder auf dem Heap oder Stack, also vom Code getrennt ...
Lokale Variabeln gelten ja für jeden eigenen Aufruf/Thread selber.
Exakt. Jeder Thread hat seinen eigenen Stack und damit eigene Variablen.