Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#9

AW: WorkerThread.Execute arbeitet keine procedure ab ?

  Alt 1. Okt 2012, 16:00
Das "darstellen" sollte wohl eher sowas wie "(be)arbeiten" heißen.

PS: statt über das langame Delphi-Referenz durchsuchenTCanvas.Pixels zu gehn, könnte man sich eventuell auch mal mit Delphi-Referenz durchsuchenTCanvas.Scanline beschäftigen.
Jenachdem wie langsam/schnell das "rechne" ist, könnte man sich die Threads auch sparen.


Bezüglich deinem "rechne":
- Wo hast du denn A initialisiert?
Das sollte dir der Compiler auch melden (falls man sich mal die Compilermeldungen durchliest), denn du wertest das schon aus, noch bevor A einen definierten Wert hat.
Und ohne Initialisierung sind lokale Variablen potentiell erstmal mit Zufallswerten befüllt.

oder man stellt das ein bissl um (das A erst auswerten, nachdem es berechnet wurde, bzw. gleich die Auswertung und Berechnung zusammenlegen und sich A sparen)
Delphi-Quellcode:
function WorkerThread.rechne(X_Ko, Y_Ko: double): Integer;
var
  nX, nY, X, Y: double;
begin
  Result := 0;
  X := 0;
  Y := 0;
  repeat
    nX := Sqr(X) - Sqr(Y) + X_Ko;
    nY := 2 * X * Y + Y_Ko;
    X := nX;
    Y := nY;
    Inc(Result);
  until (Result >= 100) or (Sqr(X) + Sqr(Y) >= 4);
end;
[edit]
bissl lahm


Wird das Execute, laut Debugger, nicht sofort im ".Resume" ausgeführt, oder überhaupt nicht?
Der Thread wird (vorallem im Debugger) etwas verzägert gestartet.
$2B or not $2B

Geändert von himitsu ( 1. Okt 2012 um 16:04 Uhr)
  Mit Zitat antworten Zitat