Der WorkerThread macht ein TParticleSystem(PSystem).Update;
in dem z.B. ein Parts.Count
und ein Parts.Items[x]
vorkommt, und der MainThread macht ASystem.AddPartikels(OldX, OldY, Emit_SB.Position)
das dazu führt, daß die Anzahl Parts sich ändert.
Das ist nur ein beispiel - und wegen dem Timer-Problem bist du evtl. noch im MainThread im Render (das auch ein Parts.Count verwendet) während der Timer schon den nächsten Thread angeworfen hat - dann krachts gleich wieder.
Gruß
Luggi
Touche, daran habe ich gar nicht gedacht...das Partikel hinzufügen sollte also auch über den Thread laufen. Soweit so gut.
Bloß fehlt mir der Ansatz, wie ich den Timer rausnehmen kann (generell, aber noch mehr im Spiel, da es eine starke Umstrukturierung fordert). Allerdings startet der Timer ja keinen Thread, sondern sagt nur dem schon laufendem Thread "Starte den nächsten Schritt" - an der Stelle sollte es also nicht krachen.