Klar geht das. Siehe Anhang.

läuft gut, aber wie gesagt, das mit den 7 Threads und 7 Tagen und 100 oder 1000 Berechnungen ist hier nur ein Beispiel und wir berechnen lediglich
Code: Alles auswählen
for i := 0 to 99 do FData[i] := ((7.5 - ANr) / 3.5 - 1) / 1.2 + Sin(i / 5 + Cnt * ANr / 50) / 5;
Meines Erachtens ist deine Lösung ein Paradebeispiel für Overengineering. Du könntest sogar for i := 0 to 9999 rechnen, und es würde sich noch nicht lohnen.
Das sind jetzt nicht wirklich aufwendige Berechnungen für welche man Threads benötigt, da habe ich Dir doch bereits zugestimmt? Das hier ist ein
fiktives Beispiel, mit meinem Projekt hat dieses Beispiel (bis auf den Ablauf) nichts gemeinsam! Meinst du ich mach solchen Aufwand um 7 Sinus Kurven zu berechnen?
Alleine die ersten Berechnungen erfolgen bei mir über 10 x 500.000 - 1.000.000 Datensätze, die werden umgerechnet, daraus werden Indikatoren berechnet, Live-Optimierungen und das gleichzeitig für 10 verschiedene Inputs usw... Können wir uns jetzt bitte darauf einigen, dass ich es gern mit Threads möchte

? Je nachdem welche Verzögerung ich einstelle, fahr ich alle 4 Kerne hoch auf 80-90% und wenns schneller geht ist es bei diesem Projekt gut. Ich nutz die auch, versprochen

!
Läuft nicht unter Android
Ich hab überhaupt gar nichts von Android gefragt oder gesagt? Will ich überhaupt nicht nutzen?
Ist Dir klar, wie "TThread.Synchronize" funktioniert ? Der Thread wartet, bis der Mainthread das Event fertig bearbeitet hat (was beliebig lange dauern kann)
Lieber Michael, ich versteh die Frage nicht?
Ich möchte aber nicht, dass jeder Thread einzeln syncronisiert zeichnet - weil dann alle anderen immer warten müssen bis sie dran sind.
Ich glaub ich hab das schon verstanden, deswegen will ich ja Synchronize so selten wie nötig nutzen. Wenn ich es nutze dann syncronisiere ich z.B. Datenübergabe oder Schaltvorgänge, aber ich will eben NICHT, dass ich aufwendige Berechnungen wieder aus dem WorkerThread raus synchronisiere.