Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: WorkerThread.Execute arbeitet keine procedure ab ?

  Alt 1. Okt 2012, 15: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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

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