Zitat von
Neutral General:
Aber soll ich dann wenn ein Thread fertig ist einen neuen erstellen der die nächsten 10 Zeilen macht?
Wozu einen neuen Thread? Der alte bleibt bestehen und holt sich die nächsten zehn Zeilen. Ohne TPL könnte das etwa so aussehen:
Delphi-Quellcode:
var sharedY := 0;
for var i := 1 to Environment.ProcessorCount do
new Thread(->
begin
while true do
begin
var startY := Interlocked.Add(var sharedY, 10);
if startY >= Height then
break;
for var y := startY to Math.Min(startY + 9, Height - 1) do
for var x ....
end;
end;
).Start();