Im Kursus von Olaf Monien habe ich gesehen, dass die TTask Klasse sich selbst um die Auslastung der CPU kümmert und nur soviel Tasks (threads) aufmacht bis die Auslastung des Systems bei 95 Prozent ist, vorher werden keine weiteren Tasks aufgemacht.
Das funktioniert bei mir nicht oder ich habe zu wenig Last.
Ich muss mit SetLength(LTasks, High(MainVerz)+1) immer angeben wieviele Tasks ich benötige. Ich hatte gehofft die Task Klasse kümmert sich selbst um die Anzahl an Tasks und löscht die abgeschlossenen dann auch wieder, sodass nicht zuviele gleichzeitig laufen.
Würde das gerne begrenzen, damit nur 10 gleichzeitige Tasks laufen, da die Festplatte sich mit mehr Tasks auch nicht schneller ansprechen lässt.
Lediglich beim wegschreiben bringt es etwas, aber da ich die Tasks über eine Queue laufen lasse (wegen dem wegschreiben in
DB) dürfte das ja dann auch nicht mehr bringen.
Nach dem ich mir den Kursus angesehen hatte, dachte ich, dass ich alles verstanden habe, aber in der Praxis sieht es dann immer mal wieder alles anders aus.
Frage:
Werden die Tasks die ich in die Queue schreibe wirklich nacheinander abgearbeitet und ich kann bedenkenlos im PresentFiles() in meine Datenbank schreiben ?
Kann ich die Anzahl der gleichzeitig laufenden Tasks begrenzen ?