Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#18

AW: Generelle Fragen zu TParallel.For

  Alt 1. Jan 2017, 15:09
Diese beiden Schleifen

Delphi-Quellcode:
for i := slMidIndex to slHighIndex do
 Inc(iTmp);

for i := slHighIndex downto slMidIndex do
 Inc(iTmpEx);
durchlaufen beide denselben (oberen) Index-Bereich, nur anders herum. Der untere Teil von 0 bis slMidIndex - 1 wird gar nicht abgedeckt. Andererseits zählst du in diesem Beispiel auch nur zwei Zähler hoch und greifst nicht auf die Einträge der Liste zu. Am Ende interpretierst du dann aber die Endwerte der Zähler als etwas, das sie gar nicht sind.

ShowMessage('Von ' + IntToStr(0) + ' bis ' + IntToStr(iTmp) + sLineBreak + 'Von ' + IntToStr(iTmp + 1) + ' bis ' + IntToStr(slHighIndex));
Dabei stellt iTmp aber lediglich die Anzahl Durchläufe der ersten Schleife dar. Das deckt sich aber nicht mit der Meldung in ShowMessage.

Der Code, den du hier zeigst, ist ganz offensichtlich nicht der, den du ausführst.

Ehrlich gesagt, verstehe ich überhaupt nicht, wo das Problem ist. Das Splitten einer Liste in zwei nahezu gleich große Teile ist doch wirklich trivial.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat