Einzelnen Beitrag anzeigen

Benutzerbild von MrMooed
MrMooed

Registriert seit: 18. Feb 2012
101 Beiträge
 
Delphi 7 Enterprise
 
#1

WorkerThread.Execute arbeitet keine procedure ab ?

  Alt 30. Sep 2012, 21:31
Delphi-Version: 2007
'Nabend

Ich habe mich wegen eines Projektes mal an das Thema Multithreading gewagt

Nun habe ich das Problem, dass ich dem WorkerThread Parameter zum rechnen übergebe, aber sobald ich Worker.Resume auf 'True' setzte passiert garnichts. Kann es dadran liegen, dass ich in der .Execute eine andere procedure starte (die die eigentliche Berechnung durchführt) ?

Hier mal ein wenig Code:
Aufruf in main-unit:
Delphi-Quellcode:
procedure TForm1.Vollbild1Click(Sender: TObject);
var
  i: Integer;
  Thread: Array of WorkerThread;
begin
  SetLength(Thread, GetCPUCount);
  for i:=0 to Length(Thread)-1 do begin
    Thread[i] := WorkerThread.create(true);
    Thread[i].ThreadCount := GetCPUCount;
    Thread[i].Y_Min := Y_Min;
    Thread[i].Y_Max := Y_Max;
    Thread[i].X_Min := X_Min + i * (X_Min + X_Max) / GetCPUCount;
    Thread[i].X_Max := Thread[i].X_Min + i * (X_Min + X_Max) / GetCPUCount;
    Thread[i].Hoehe := Form1.Height;
    Thread[i].Breite := Form1.Width DIV GetCPUCount;
    Thread[i].Resume;
    end;
end
Bei der WorkerThread.Execute macht es keinen Unterschied ob ich die procedure damit aufrufe, oder ob ich sie direkt dadrin berechne o.o
  Mit Zitat antworten Zitat