Jpeg und Threads... die Problematik kommt mir sehr bekannt vor - hatte ich vor einiger Zeit auch viel Last mit, und hab's letztlich aufgegeben, da das Programm nicht wirklich wichtig war.
Dass die 2. Variante besser klappt, könnte ich mir nur so erklären, dass evtl. TJPEGImage beim Assign und/oder Save
GDI-Ressourcen anfordert, und nicht umgehend freigibt. Das wäre bei der 2. Version vermutlich über das Free erzwungen. (Das würde u.U. deine OutOfRessources Fehler im anderen Thread erklären.)
Was mir dabei jedoch schleierhaft ist: Warum tritt das nicht im Mainthread auf? Ich weiss nicht mehr wer es war, aber ich habe mal die Vermutung gelesen, dass die
GDI in Teilen per se nicht Threadsafe ist, und es so zu Problemchen kommen könnte.
Irgendwie schwirrt mir etwas von "
Unit Jpeg scheint nicht Threadsafe zu sein" im Kopf rum. Zwei mögliche Ansätze: Versuchen eine andere jpeg-lib zu bekommen (nicht einfach - ich habe keine brauchbare gefunden), oder aber die Teile mit jpegs synchronisieren
. Bzw. wenn dein obiger (2.) Code geht, nimm ihn einfach
. Ist zwar nicht die feine englische Art dauernd Objekte neu zu erstellen und wieder freizugeben, aber ich wüsste keinen spontanen Workaround.
Gruss,
Fabian
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel