@mirage228: wenn nun aber 11 Bytes aufgeteilt werden müssen, dann erhält Thread 1&2 davon 3 Bytes und Thread 3 würde (nach deinem Algorithmus) 5 Bytes erhalten. Besser wäre aber doch 3/4/4!
Mein Vorschlag:
Delphi-Quellcode:
for i := 1 to ANZ_TASKS do
Task[i].Bytes := GesamtBytes div ANZ_TASKS;
for i := 1 to GesamtBytes mod ANZ_TASKS do
Task[i].Bytes := Task[i].Bytes + 1;
So erhält jeder Task erstmal gleich viele Bytes zugewiesen, anschließend werden die restlichen n Bytes auf die ersten n Tasks verteilt.