Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.326 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.
Ein Therapeut entspricht 1024 Gigapeut.

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