Zitat von
Arthur Hoornweg:
bekommt "meinproc" nun 1 oder 2 Strings zu verdauen?
Objekte werden natürlich nicht kopiert. Bei denen musst du dann schon selbst dafür sorgen, dass nicht zwei gleichzeitig darauf zugreifen. Das ist auch bei normalen Funktion der Fall. Was AsyncCall(func, []) anders macht, ist dass es elementare Typen (Char, Integer, ...) sowie Referenz-gehzählte Typen (String, Interface, ...) sicher macht (es wird intern eine Zuweisung an eine Variable des selben Types gemacht, der während des Funktionsaufrufs existent bleibt. Wenn du mehr erfahren willst, was da intern abläuft, dann solltest du einen Blick in die CopyVarRec() Funktion in AsyncCalls.pas werfen.
Zitat:
aber üblicherweise ist ein "const" Parameter ein Pointer.
Das ist er auch weiterhin. Nur zeigt der Zeiger halt nicht auf das Original, sondern auf eine interne Kopie.