Einzelnen Beitrag anzeigen

Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#21

Re: MultiThreading Bei mir ca. 40x Langsamer bei IntegerBere

  Alt 21. Aug 2006, 21:13
Hallo, habe die letzten Tage ein bisschen daran an meinem Thread-Problem gearbeitet, um zu Erfahren ob das Verwalten von Threads aufwendiger ist als das ständige neu erstellen.

So wollte ich probeweise die Schleife in den Thread verlegen.

Leider schaffe ich auch den Spass nicht, ich wollte den Thread mit Suspend anhalten und mit Resume weilterlaufen lassen,doch leider klappt dies nicht!!!


Die Änderungenen:

So Starte ich die beiden Thread

Delphi-Quellcode:
     TThread1.Create(Feld);
     TThread2.Create(Feld);
So ist die deklaraion:
Delphi-Quellcode:
Thread1:TThread1;
Thread2:TThread2;

Delphi-Quellcode:
procedure TThread1.Counten2(Var Feld1:TIntegerDynArray);
Var x,y,z:Integer;
begin
    i:=0;

    for z:=0 to 150 do
    begin
      for y:=0 to 13 do
      for x:=0 to 156 do Feld1[x]:=Feld1[x]+1*2 div 2;
      x:=SumInt(Feld1);
      Inc(i);

      Thread2.Resume;
       Form1.Label2.Caption:=IntToStr(i);
      Thread1.suspend;
    end;
   Form1.Label2.Caption:=IntToStr(i);
end;
Delphi-Quellcode:
procedure TThread2.Counten2(Var Feld1:TIntegerDynArray);
Var x,y,z:Integer;
begin
    Thread2.suspend;
    for z:=0 to 150 do
    begin
      for y:=0 to 13 do
      for x:=0 to 156 do Feld1[x]:=Feld1[x]+1*2 div 2;
      x:=SumInt(Feld1);
      Thread1.Resume;
      Thread2.suspend;
    end;
end;
Bitte nicht über den Sinn oder Unsinn lappertieren dieser beiden Codes,ich möchte hiermit erst mal das anhalten und weitermachen zwischen 2 Threads üben.Leider wird das i im ersten Thread nicht höher als 1 gezählt!Und wenn ich es nach reume auslesen will passiert gar nix.
Angehängte Dateien
Dateityp: zip scoure2_185.zip (34,4 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat